<?xml version="1.0"?>
<doc>
    <assembly>
        <name>VelocityDb</name>
    </assembly>
    <members>
        <member name="T:VelocityDb.Oid">
            <summary>
            The object identifier containing a 32 bit database part, a 16 bit page part and a 16 bit page part. These parts are combined into a 64bit unsigned number <see cref="P:VelocityDb.OptimizedPersistable.Id"/>.
            </summary>
        </member>
        <member name="M:VelocityDb.Oid.#ctor(System.UInt64)">
            <summary>
            Creates an Oid
            </summary>
            <param name="id">Higest 32 bit is Database number, then follows the 16 bit Page number and the 16 bit page number</param>
        </member>
        <member name="M:VelocityDb.Oid.#ctor(System.UInt32,VelocityDb.OidShort)">
            <summary>
            Creates an Oid given a Database number and an OidShort (page-slot)
            </summary>
            <param name="dbId">The Database number</param>
            <param name="pageSlotId">The page and slot numbers as an OidShort</param>
        </member>
        <member name="M:VelocityDb.Oid.#ctor(System.UInt32,System.UInt32)">
            <summary>
            Creates an Oid given a Database number and an OidShort (page-slot)
            </summary>
            <param name="dbId">The Database number</param>
            <param name="pageSlotId">The page and slot numbers as a UInt32</param>
        </member>
        <member name="M:VelocityDb.Oid.Encode(System.UInt32,System.UInt16,System.UInt16)">
            <summary>
            Constructs a UInt64 from the components Database number, Page number and page number
            </summary>
            <param name="db">A Database number</param>
            <param name="page">A Page number</param>
            <param name="slot">A slot number</param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Oid.CompareTo(System.Object)">
            <summary>
            Compares two Oid objects by id
            </summary>
            <param name="obj">The object to compare with</param>
            <returns>a negative number if less, 0 if equal or else a positive number</returns>
        </member>
        <member name="M:VelocityDb.Oid.DatabaseNumber(System.UInt64)">
            <summary>
            Extracts the Database number
            </summary>
            <param name="id">The combined Database number, Page number and page number</param>
            <returns>The Database number</returns>
        </member>
        <member name="M:VelocityDb.Oid.PageNumber(System.UInt64)">
            <summary>
            Extracts the Page number
            </summary>
            <param name="id">The combined Database number, Page number and page number</param>
            <returns>The Page number</returns>
        </member>
        <member name="M:VelocityDb.Oid.SamePageAs(System.UInt64,System.UInt64)">
            <summary>
            Find out if Page number is the same in two different UInt64 numbers (encoded Oid)
            </summary>
            <param name="id">A combined Database number, Page number and page number</param>
            <param name="anId">Another combined Database number, Page number and skot number</param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Oid.SlotNumber(System.UInt64)">
            <summary>
            Extracts the page number
            </summary>
            <param name="id">A combined Database number, Page number and page number</param>
            <returns>A page number</returns>
        </member>
        <member name="M:VelocityDb.Oid.SlotNumber(System.UInt64,System.UInt16)">
            <summary>
            Sets the page number
            </summary>
            <param name="oid">A combined Database number, Page number and page number</param>
            <param name="slotNumber">A slot number to use in the combined UInt64 value</param>
            <returns>A combined Database number, Page number and an updated page number</returns>
        </member>
        <member name="M:VelocityDb.Oid.AsString(System.UInt64)">
            <summary>
            Builds a string with DatabaseNumber-PageNumber-SlotNumber
            </summary>
            <param name="id">A combined Database number, Page number and page number</param>
            <returns>DatabaseNumber-PageNumber-SlotNumber</returns>
        </member>
        <member name="M:VelocityDb.Oid.ToString">
            <summary>
            Builds a string with DatabaseNumber-PageNumber-SlotNumber
            </summary>
            <returns>DatabaseNumber-PageNumber-SlotNumber</returns>
        </member>
        <member name="M:VelocityDb.Oid.op_GreaterThan(VelocityDb.Oid,VelocityDb.Oid)">
            <summary>
            Compares the id of two Oid's
            </summary>
            <param name="a">First Oid</param>
            <param name="b">Second Oid</param>
            <returns>a.id > b.id</returns>
        </member>
        <member name="M:VelocityDb.Oid.op_LessThanOrEqual(VelocityDb.Oid,VelocityDb.Oid)">
            <summary>
            Compares the id of two Oid's
            </summary>
            <param name="a">First Oid</param>
            <param name="b">Second Oid</param>
            <returns>a.id less or equal to b.id</returns>
        </member>
        <member name="M:VelocityDb.Oid.op_GreaterThanOrEqual(VelocityDb.Oid,VelocityDb.Oid)">
            <summary>
            Compares the id of two Oid's
            </summary>
            <param name="a">First Oid</param>
            <param name="b">Second Oid</param>
            <returns>a.id >= b.id</returns>
        </member>
        <member name="M:VelocityDb.Oid.op_LessThan(VelocityDb.Oid,VelocityDb.Oid)">
            <summary>
            Compares the id of two Oid's
            </summary>
            <param name="a">First Oid</param>
            <param name="b">Second Oid</param>
            <returns>a.id less than b.id</returns>
        </member>
        <member name="P:VelocityDb.Oid.Id">
            <summary>
            Gets the underlaying UInt64 that contains the encoded Oid.
            </summary>
        </member>
        <member name="P:VelocityDb.Oid.IdShort">
            <summary>
            Gets the page-slot parts of the underlaying UInt64 that contains the encoded Oid.
            </summary>
        </member>
        <member name="P:VelocityDb.Oid.Database">
            <summary>
            Gets the database number part of the Oid
            </summary>
        </member>
        <member name="P:VelocityDb.Oid.Page">
            <summary>
            Gets the page number part of the Oid
            </summary>
        </member>
        <member name="T:VelocityDb.Database">
            <summary>Represents a Database which corresponds to file system file.
            </summary>
        </member>
        <member name="T:VelocityDb.OptimizedPersistable">
            <summary>
            Base class for all persistent capable classes except for embedded objects which do not need to be subclasses of this class.
            </summary>
        </member>
        <member name="T:VelocityDb.IOptimizedPersistable">
            <summary>
            Under construction - check back later, interface not yet usable.
            </summary>
        </member>
        <member name="M:VelocityDb.IOptimizedPersistable.InitializeAfterRead(VelocityDb.Session.SessionBase)">
            <summary>
            This function is called when an object has been read from disk and all data members (fields) have been loaded. Override this to provide your own initializtions of transient data.
            </summary>
            <param name="session">The active session managing this object</param>
        </member>
        <member name="M:VelocityDb.IOptimizedPersistable.InitializeAfterRecreate(VelocityDb.Session.SessionBase)">
            <summary>
            This function is called when an object has been read from disk before all data members (fields) have been fully loaded. Override this to provide your own initializtions of transient data.
            </summary>
            <param name="session">The active session managing this object</param>
        </member>
        <member name="M:VelocityDb.IOptimizedPersistable.Persist(VelocityDb.Placement,VelocityDb.Session.SessionBase,System.Boolean,System.Boolean)">
            <summary>
            Persists this object.
            </summary>
            <param name="place">The placement rules to follow when persisting this object</param>
            <param name="session">The session managing this object</param>
            <param name="persistRefs">If true, objects referenced from this object will also be persisted</param>
            <param name="disableFlush">If true, disables possible flushing of updated pages while persisting this object; otherwise pasge flushing may occur</param>
            <returns>The object id of the persistent object</returns>
        </member>
        <member name="M:VelocityDb.IOptimizedPersistable.Persist(VelocityDb.Session.SessionBase,VelocityDb.IOptimizedPersistable,System.Boolean,System.Boolean)">
            <summary>
            Persists this object.
            </summary>
            <param name="placeHint">Use placement as specified by this object type, see <see cref="P:VelocityDb.OptimizedPersistable.PlacementDatabaseNumber"/>, <see cref="P:VelocityDb.OptimizedPersistable.ObjectsPerPage"/> and <see cref="P:VelocityDb.OptimizedPersistable.PagesPerDatabase"/></param>
            <param name="session">The session managing this object</param>
            <param name="persistRefs">Persist any referenced object now or delay until flush/commit</param>
            <param name="disableFlush">Controlls possible flushing of updated pages. Set to true if you want to prevent updated pages from being flushed to disk and setting such pages to a non updated state.</param>
            <returns>The object id of the persistent object</returns>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.FlushIfPageFull">
            <summary>
            By default we flush (write) any updated page we find when looking for an object placement page and the page is considered full (depends on how many objects we permit/page)
            </summary>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.Id">
            <summary>
            Gets the id of this object. The id is structured as <see cref="T:VelocityDb.Oid"/>
            </summary>
            <value>The id of this object or 0 if object is not persistent</value>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.IsPersistent">
            <summary>
            Gets the persistent state of an object. An object is considered persistent when it has an <see cref="T:VelocityDb.Oid"/>, that is the <see cref="P:VelocityDb.IOptimizedPersistable.Id"/> is not 0
            </summary>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.IsUpdated">
            <summary>
            Gets the updated state of the object
            </summary>
            <value>true if updated; otherwise false</value>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.MaxNumberOfDatabases">
            <summary>
            Possibly restrict instances of to a single Database. By default this property is UInt32.MaxValue but classes like BTreeSetOidShort, BTreeMapShortOid ... override this property to return 1 since short references are restricted to a single Database.
            </summary>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.Page">
            <summary>Gets the Page of this object.
            <value>The <see cref="P:VelocityDb.IOptimizedPersistable.Page"/></value>
            </summary>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.PagesPerDatabase">
            <summary>
            A default for number of objects per database page used when persiting objects without an explicit <see cref="T:VelocityDb.Placement"/> object or if persistet using <see cref="!:OptimizedPersistable.Persist(SessionBase, OptimizedPersistable, bool, bool)"/>
            This happens when objects are persited by reachability from a persistent object.
            All objects reachable from a persistent object are automaticly made persistent.
            </summary> 
            <returns>The requested number of pages per database</returns>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.PlacementDatabaseNumber">
            <summary>
            Gets the Database Id number to use when placing (persisting) an instance of this class when no other placement directive has been given.
            </summary>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.Shape">
             <summary>
             The database engine needs this internally, implement it in your class by adding a variable such as
             [NonSerialized]
             TypeVersion shape;
             Your implementation:
             public TypeVersion Shape
            {
              get
              {
                return shape;
              }
              set
              {
                shape = value;
              }
            }
            
             Note, that you do NOT want to persist this varaible, it is only used transiently while the object is in memory. Use [NonSerialized] attribute to prevent it from being persisted.
             </summary>
        </member>
        <member name="P:VelocityDb.IOptimizedPersistable.WrappedObject">
            <summary>
            Temporary, probably will be removed
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.#ctor(System.UInt64)">
            <summary>
            This constructor can be used in cases where the object id is known but you don't want to open the object, maybe you just want to add this object to a BTreeSet.
            </summary>   
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.#ctor">
            <summary>
            The default constructor can be used to create simple OptimizedPersistable objects.
            </summary>   
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.CompareTo(System.Object)">
            <summary>
            Compares objects using the object <see cref="P:VelocityDb.OptimizedPersistable.Id"/>
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.Equals(System.Object)">
            <summary>
            Determines whether the specified Object is equal to the current Object.
            </summary>
            <value>true if the specified Object is equal to the current Object; otherwise, false.</value>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Enumerates all fields of this object
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.System#Collections#Generic#IEnumerable{VelocityDb#TypeInfo#DataMember}#GetEnumerator">
            <summary>
            Enumerates all fields of this object
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.GetEnumerator">
            <summary>
            Enumerates all fields of this object or returns it as an array (if this is an array)
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.System#Collections#Generic#IEnumerable{VelocityDb#OptimizedPersistable}#GetEnumerator">
            <summary>
            Enumerates all objects contained in fields of this object
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.System#Collections#Generic#IEnumerable{System#Array}#GetEnumerator">
            <summary>
            Enumerates all fields of this object or returns it as an array (if this is an array)
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.GetHashCode">
            <summary>
            Computes a hash code based on Oid of object.
            Make sure to persist objects before using GetHashCode() or override GetHashCode()
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.OidOf(System.Object)">
            <summary>Gets the Oid (encoded as an UInt64) of a non OptimizedPersistable object or 0 if the object isn't persistent on the same page as this object.</summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.PersistentVersion">
             <summary>
             Gets the page version of a persistent object
             </summary>
            <returns>
             The page version.
            </returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.Persist(VelocityDb.Placement,VelocityDb.Session.SessionBase,System.Boolean,System.Boolean)">
            <summary>
            Persists this object.
            </summary>
            <param name="place">The placement rules to follow when persisting this object</param>
            <param name="session">The session managing this object</param>
            <param name="persistRefs">If true, objects referenced from this object will also be persisted</param>
            <param name="disableFlush">If true, disables possible flushing of updated pages while persisting this object; otherwise pasge flushing may occur</param>
            <returns>The object id of the persistent object</returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.Persist(VelocityDb.Session.SessionBase,VelocityDb.IOptimizedPersistable,System.Boolean,System.Boolean)">
            <summary>
            Persists this object.
            </summary>
            <param name="placeHint">Use placement as specified by this object type, see <see cref="P:VelocityDb.OptimizedPersistable.PlacementDatabaseNumber"/>, <see cref="P:VelocityDb.OptimizedPersistable.ObjectsPerPage"/> and <see cref="P:VelocityDb.OptimizedPersistable.PagesPerDatabase"/></param>
            <param name="session">The session managing this object</param>
            <param name="persistRefs">Persist any referenced object now or delay until flush/commit</param>
            <param name="disableFlush">Controlls possible flushing of updated pages. Set to true if you want to prevent updated pages from being flushed to disk and setting such pages to a non updated state.</param>
            <returns>The object id of the persistent object</returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.LoadMembers">
            <summary>
            Loads all field member that if they are not already loaded.
            </summary>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.Update(System.Boolean)">
            <summary>
            Marks an object as being updated so that object will be written at commit transaction.
            </summary>
            <param name="disableFlush">Controlls possible flushing of updated pages. Set to true if you want to prevent updated pages from being flushed to disk and setting such pages to a non updated state.</param>
            <returns>true if update successful</returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.InitializeAfterRecreate(VelocityDb.Session.SessionBase)">
            <summary>
            This function is called when an object has been read from disk before all data members (fields) have been fully loaded. Override this to provide your own initializtions of transient data.
            </summary>
            <param name="session">The active session managing this object</param>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.InitializeAfterRead(VelocityDb.Session.SessionBase)">
            <summary>
            This function is called when an object has been read from disk and all data members (fields) have been loaded. Override this to provide your own initializtions of transient data.
            </summary>
            <param name="session">The active session managing this object</param>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.Unpersist(VelocityDb.Session.SessionBase,System.Boolean)">
            <summary>
            Removes an object from the persistent store and makes the object a transient object. It does not automaticly make referenced objects unpersisted. Best way to do so is to override this virtual function in your own classes.
            </summary>
            <param name="session">The managing session</param>
            <param name="disableFlush">Prevent possible flush of updated pages</param>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.ToString">
             <summary>
             Displays class name plus object id
             </summary>
            <returns>
             A <see cref="T:System.String"/> containing class name and object id.
            </returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.ToStringDetails(VelocityDb.Session.SessionBase,System.Boolean)">
             <summary>
             Object details as a string
             </summary>
             <param name="session">The session managing this object</param>
             <param name="skipArrays">Indicates if string should contain detailed array data.</param>
            <returns>
             A <see cref="T:System.String"/> containing all details of this object.
            </returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.ArrayToString(System.Array,System.Boolean,VelocityDb.Page,System.String)">
             <summary>
             Outputs a string representing an array
             </summary>
             <param name="array">The array to represent as a string</param>
             <param name="page">The page containing the array</param>
             <param name="prefix">A prefix to use before each array element in the output string</param>
            <returns>
             A <see cref="T:System.String"/> representing the array.
            </returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.ListToString(System.Collections.IList,VelocityDb.Page)">
            <summary>
            This is a support function for the VelocityDbBrowser
            </summary>
            <param name="list">A list to output as a string</param>
            <param name="page">The page containing the list</param>
            <returns>A string representing the input list.</returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.ToStringDetails(VelocityDb.TypeInfo.DataMember,System.Object,VelocityDb.IOptimizedPersistable,VelocityDb.Page,System.Boolean)">
            <summary>
            This is a support function for the VelocityDbBrowser. It converts a field into a string.
            </summary>
            <param name="member">A field in an object</param>
            <param name="obj">The object containing the fhe field</param>
            <param name="pObj">The object containing the fhe field or the owner of the object containing the field</param>
            <param name="page">The page of the object</param>
            <param name="skipArrays">Option to skip arrays of the object</param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.Open(System.UInt32,System.Boolean,System.Boolean)">
            <summary>
            Opens a persistent object located in the same Database as this object
            </summary>
            <param name="pageSlot">The OidShort encoded as a UInt32 of the object to open within the same Database as this object</param>
            <param name="update">Open the object for update?</param>
            <param name="inFlush">if true, disallow page flushing while opening the object</param>
            <returns>The opened object or <c>null</c> if it does not exist</returns>
        </member>
        <member name="M:VelocityDb.OptimizedPersistable.UpdateTypeVersion">
            <summary>
            Updates the object and make this object use the latest Type definition for its class. The object now will now adjust for data attrubute changes.
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.DatabaseNumber">
            <summary>
            Gets the database number of this object.
            </summary>
            <value>The database number of this object or 0 if object is not persistent</value>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.Page">
            <summary>Gets the Page of this object.
            <value>The <see cref="P:VelocityDb.OptimizedPersistable.Page"/></value>
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.PageNumber">
            <summary>
            Gets the page number part of the object Oid (Id)
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.Id">
            <summary>
            Gets the id of this object. The id is structured as <see cref="P:VelocityDb.OptimizedPersistable.Oid"/>
            </summary>
            <value>The id of this object or 0 if object is not persistent</value>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.IsUpdated">
            <summary>
            Gets the updated state of the object
            </summary>
            <value>true if updated; otherwise false</value>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.ShortId">
            <summary>
            Gets the short id of this object. The id is structured as <see cref="P:VelocityDb.OptimizedPersistable.OidShort"/>
            </summary>
            <value>The short id of this object or 0 if object is not persistent</value>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.OidShort">
            <summary>
            Gets the OidShort part of the object Oid
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.ObjectsPerPage">
            <summary>
            A default for number of objects per database page used when persiting objects without an explicit <see cref="T:VelocityDb.Placement"/> object or if persistet using <see cref="!:OptimizedPersistable.Persist(SessionBase, OptimizedPersistable, bool, bool)"/>
            This happens when objects are persited by reachability from a persistent object.
            All objects reachable from a persistent object are automaticly made persistent.
            </summary>
            <returns>The requested number of objects per page.</returns>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.PagesPerDatabase">
            <summary>
            A default for number of objects per database page used when persiting objects without an explicit <see cref="T:VelocityDb.Placement"/> object or if persistet using <see cref="!:OptimizedPersistable.Persist(SessionBase, OptimizedPersistable, bool, bool)"/>
            This happens when objects are persited by reachability from a persistent object.
            All objects reachable from a persistent object are automaticly made persistent.
            </summary> 
            <returns>The requested number of pages per database</returns>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.AllowOtherTypesOnSamePage">
            <summary>
            Objects can be stored more efficiently if all object types on the page share the same type. By default mixed types are allowed. Override this to return false for types that should not share pages with other types.
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.Cache">
            <summary>
            By default objects are not cached (with a strong reference) but certain types of objects may be re opened more frequently than others, for such types override this to return a value other than CacheEnum.No.
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.FlushIfPageFull">
            <summary>
            By default we flush (write) any updated page we find when looking for an object placement page and the page is considered full (depends on how many objects we permit/page)
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.LazyLoadMembers">
            <summary>
            By defualt all field members are loaded when opening a persistent object but an option is provided to load members on demand (lazy loading).
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.MembersLoaded">
            <summary>
            Gets the field members load state. By default, all members are loaded when a persistent object is opened but if an overrode of <see cref="P:VelocityDb.OptimizedPersistable.LazyLoadMembers"/> returns true then the object members are loaded by calling <see cref="M:VelocityDb.OptimizedPersistable.LoadMembers"/>
            </summary>
            <value>true if all members are loaded; otherwise false</value>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.PlacementDatabaseNumber">
            <summary>
            Gets the Database Id number to use when placing (persisting) an instance of this class when no other placement directive has been given.
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.IsPersistent">
            <summary>
            Gets the persistent state of an object. An object is considered persistent when it has an <see cref="P:VelocityDb.OptimizedPersistable.Oid"/>, that is the <see cref="P:VelocityDb.OptimizedPersistable.Id"/> is not 0
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.Oid">
            <summary>
            Gets the object identifier represented as an <see cref="P:VelocityDb.OptimizedPersistable.Oid"/>.
            </summary>
            <value>The <see cref="P:VelocityDb.OptimizedPersistable.Oid"/> of the object</value>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.Session">
            <summary>
            Gets the session of this object or null if this object isn't yet persisted.
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.SlotNumber">
            <summary>
            Gets the page number from the object identifier
            </summary>
            <value>the page number of this object</value>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.MaxNumberOfDatabases">
            <summary>
            Possibly restrict instances of to a single Database. By default this property is UInt32.MaxValue but classes like BTreeSetOidShort, BTreeMapShortOid ... override this property to return 1 since short references are restricted to a single Database.
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.Shape">
            <summary>
            Internal use only, see <see cref="P:VelocityDb.IOptimizedPersistable.Shape"/>
            </summary>
        </member>
        <member name="P:VelocityDb.OptimizedPersistable.WrappedObject">
            <summary>
            Objects that are not subclasses of OptimizedPersistable may be wrapped by an OptimizedPersistable, if so this gets the wrapped object or else gets this object.
            </summary>
        </member>
        <member name="M:VelocityDb.Database.#ctor(VelocityDb.Session.SessionBase)">
            <summary> 
            <param name="session">The session managing this object.</param>
            This special constructor is provided so that VelocityDb can instantiate the object after reading it from disk.  
            This is also the place to initialize transient variables of the object.
            </summary>
        </member>
        <member name="M:VelocityDb.Database.AllObjects``1">
            <summary>
            Gets an object used for enumerating all objects in this Database
            </summary>
            <typeparam name="T">The type of object we are looking for</typeparam>
            <returns>The enumeration wrapper object</returns>
        </member>
        <member name="M:VelocityDb.Database.Bytes">
            <summary>
            Avoid using this one for now, internal use.
            </summary>
            <returns>The bytes of the Database</returns>
        </member>
        <member name="M:VelocityDb.Database.CloneAs(System.UInt32)">
            <summary>
            Any Database that only uses OidShort references can be cloned without changing any of the internals of the Databse. This function simply copies the Database file.
            It is the user's responsibility to know that only OidShort references are used within the Database or else such references will still keep the opriginal Database number.
            </summary>
            <param name="otherAvaialbleDatabaseNumber">The desired Id of the Database clone</param>
            <returns>The Database clone</returns>
        </member>
        <member name="M:VelocityDb.Database.System#Collections#Generic#IEnumerable{System#Object}#GetEnumerator">
            <summary>
            Creates an enumerator of all objects in this Database.
            </summary>
            <returns>The enumerator (iterator)</returns>
        </member>
        <member name="M:VelocityDb.Database.GetEnumerator">
             <summary>
             Gets an enumerable sequence of all the pages in this database.
             </summary>
            <returns>Enumaration of pages in a Database</returns>
        </member>
        <member name="M:VelocityDb.Database.Close">
            <summary>
            Closes a
            </summary>
        </member>
        <member name="M:VelocityDb.Database.InitializeAfterRead(VelocityDb.Session.SessionBase)">
            <summary>
            Sets up some transient data fields after a database has been read from disk
            </summary>
            <param name="session">The session managing this object.</param>
        </member>
        <member name="P:VelocityDb.Database.FileInfo">
            <summary>
            The path of the Database file, not set for ServerClientSession.
            </summary>
        </member>
        <member name="P:VelocityDb.Database.IsNew">
            <summary>
             Indicates if database was created in the current transactionNumber 
            </summary>
        </member>
        <member name="P:VelocityDb.Database.Name">
            <summary>
            Optional name associated with a Database
            </summary>
        </member>
        <member name="P:VelocityDb.Database.NumberOfPages">
            <summary>
             Indicates how many pages this database contains.
            </summary>
        </member>
        <member name="P:VelocityDb.Database.HighestPageNumber">
            <summary>
             Indicates the highest tryPageNumber number currently in use for this database.
            </summary>
        </member>
        <member name="P:VelocityDb.Database.Location">
            <summary>
            The DatabaseLocation of this Database
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeSet`1">
            <summary>
            Represents a collection of objects that is maintained in sorted order. A persistent BTree references its contained objects by Oid instead of direct object references.
            This way, we will only open the referenced objects on demand which reduces memory usage and initial BTree load time.
            </summary>
            <typeparam name="Key">The key type of objects in this BTree</typeparam>  
            <typeparam name="Value">The value type of objects in this BTree</typeparam>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeBase`2">
            <summary>
            Represents a collection of objects that is maintained in sorted order.
            </summary>
            <typeparam name="Key">The type of key objects in this BTree</typeparam>
            <typeparam name="Value">The type of value objects in a BTreeMap or BTreeMapOidShort</typeparam>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeNode">
            <summary>
            A BTree consists of a tree of nodes. Each BTree node has this class a base class.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeNode.#ctor">
            <summary>
            Default constructor used when creating BTree nodes
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.#ctor(VelocityDb.Session.SessionBase,System.UInt16,System.UInt16,System.Boolean,System.Boolean)">
            <summary>
            Creates a new BTreeSet
            </summary>
            <param name="session">The session managing this object.</param>
            <param name="maxEntriesPerNode">Determines internal array and Page sizes</param>
            <param name="comparisonArraySize">Determine how many bytes to reserve for each object within a BTree node as a way to avoid actual object compares.</param>
            <param name="comparisonArrayIsCompleteKey">If the comparison array bytes are all that needs to be compared to determine ordering then set this to true; otherwise false</param>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Add(`0)">
            <summary>
            Adds an element to the set and returns a value that indicates if it was successfully added
            </summary>
            <returns>
            <c>true</c> if an element was added; otherwise, <c>false</c>. 
            </returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Add(`0,`1)">
            <summary>
            Add a key with an associated value to a BTreeMap
            </summary>
            <param name="key">The key added</param>
            <param name="value">The associated value added</param>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Add(`0,System.Byte[])">
            <summary>
            Adds an element to the set and returns a value that indicates if it was successfully added
            </summary>
            <returns>
            <c>true</c> if an element was added; otherwise, <c>false</c>. 
            </returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Add(`0,`1,System.Byte[])">
            <summary>
            Adds a key and value to the map and returns a value that indicates if it was successfully added
            </summary>
            <returns>
            <c>true</c> if an element was added; otherwise, <c>false</c>. 
            </returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Clear">
            <summary>
            Removes all elements from the set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Contains(`0)">
            <summary>
            Determines whether the set contains a specific element.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Contains(`0,System.Byte[])">
            <summary>
            Determines whether the set contains a specific element.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.NodeIterator">
            <summary>
            Initializes an iterator to find the Nodes of this set
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Remove(`0)">
            <summary>
            Removes a specified item from the set.
            </summary>
            <returns>
            <c>true</c> if an element was removed; otherwise, <c>false</c>. 
            </returns>  
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.Remove(`0,System.Byte[])">
            <summary>
            Removes a specified item from the set.
            </summary>
            <returns>
            <c>true</c> if an element was removed; otherwise, <c>false</c>. 
            </returns>  
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.TryGetKey(`0,`0@)">
            <summary>
            Gets the value matching persistent key with the specified key.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.</param>
            <returns>true if the set contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.TryGetKey(`0,System.Byte[],`0@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="comparisonArray">The comparison array associated with the key to get.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.</param>
            <returns>true if the BTreeBase(Of Key) contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeBase`2.InitializeAfterRead(VelocityDb.Session.SessionBase)">
            <summary>
            Sets up some transient varaibles
            </summary>
            <param name="session">The active session</param>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.Comparer">
            <summary>
            Gets the VelocityDbComparer(Of Key) that is used to determine the order of the items in the sorted set
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.ComparisonArraySize">
            <summary>
            Gets the size of a comparison array used by this set.
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.Count">
            <summary>
            Gets the number of elements in the set.
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.Depth">
            <summary>
            Gets the depth of the BTreeSet
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.FlushIfPageFull">
            <summary>
            We don't want to flush other BTree pages while looking for a placement page
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.IsLeaf">
            <summary>
            Is the root a leaf node or not?
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.NodeSize">
            <summary>
            
            </summary>
            <returns>
            The size of the nodeList or thr keyList (if depth is 1) of the root node.
            </returns>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeBase`2.Session">
            <summary>
            Gets the session managing this object
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0},VelocityDb.Session.SessionBase,System.UInt16,System.UInt16,System.Boolean)">
            <summary>
            Creates a new BTreeSet
            </summary>
            <param name="maxEntriesPerNode">Determines internal array and Page sizes</param>
            <param name="comparer">An object comparer. Try using CompareByField</param>
            <param name="session">The session managing this object</param>
            <param name="comparisonArraySize">Determine how many bytes to reserve for each object within a BTree node as a way to avoid actual object compares.</param>
            <param name="comparisonArrayIsCompleteKey">If the comparison array bytes are all that needs to be compared to determine ordering then set this to true; otherwise false</param>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.System#Collections#Generic#IEnumerable{Key}#GetEnumerator">
            <summary>
            Enumerates all Key objects within the BTree
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.GetEnumerator">
            <summary>
            Enumerates all contained Key objects in sorted order
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.First">
            <summary>
            Returns the first Key object in this set.
            </summary>
            <returns>The first Key in the collection according to the sort order used</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.Iterator">
            <summary>
            Initializes an iterator to find the keys of this set
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.Clear">
            <summary>
            Removes all elements from the set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.Last">
            <summary>
            Returns the last Key object in this set.
            </summary>
            <returns>The last Key in the collection according to the sort order used</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSet`1.Unpersist(VelocityDb.Session.SessionBase,System.Boolean)">
            <summary>
            Removes an object from the persistent store and makes the object a transient object. Also makes all other objects part of the BTree transient (but not the Key objects)
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeSet`1.Comparer">
            <summary>
            Gets the VelocityDbComparer object that is used to compare Key objects.
            </summary>
        </member>
        <member name="T:VelocityDb.TryingToDeleteDeletedDatabaseException">
            <summary>
            Exception thrown when attempting to delete a Database that already was deleted in the same transaction
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.SortedMapOidShort`2">
            <summary>
            A sorted map where all keys and values and the map are contained within a single <see cref="T:VelocityDb.Database"/>
            </summary>
            <typeparam name="Key">The Type of keys of this map</typeparam>
            <typeparam name="Value">The Type of values of this map</typeparam>
        </member>
        <member name="T:VelocityDb.Collection.SortedMapBase`2">
            <summary>
            A base class for sorted maps.
            </summary>
            <typeparam name="Key">A key type for a map</typeparam>
            <typeparam name="Value">A value type for a map</typeparam>
        </member>
        <member name="T:VelocityDb.Collection.SortedSetBase`1">
            <summary>
            A base class for sorted sets
            </summary>
            <typeparam name="Key">A key type for a set.</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.Add(`0)">
            <summary>
            Add item to this sorted set.
            </summary>
            <param name="key">item to add</param> 
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.Clear">
            <summary>
            Remove all items from this set. 
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.Contains(`0)">
            <summary>
            Checks if this sorted set contains the item 
            </summary>
            <param name="aKey">item to check for containment</param> 
            <returns>true if item contained; false if not</returns> 
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.CopyTo(`0[],System.Int32)">
            <summary> 
            Copy items in this sorted set to array, starting at arrayIndex
            </summary> 
            <param name="array">array to add items to</param> 
            <param name="index">index to start at</param>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.IndexOf(`0)">
            <summary>
            Get the index of a given key
            </summary>
            <param name="aKey">The lookup key</param>
            <returns>The index of key or -1 if a matching key was not found.</returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.Remove(`0)">
            <summary> 
            Remove item from this set
            </summary> 
            <param name="key">item to remove</param> 
            <returns>true if removed; false if not (i.e. if the item wasn't in the SortedSetBase)</returns>    
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.RemoveWhere(System.Predicate{`0})">
            <summary>
            Remove elements that match specified predicate. Returns the number of elements removed 
            </summary>
            <param name="match"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.TryGetValue(`0,`0@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.</param>
            <returns>true if the set contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetBase`1.GetEnumerator">
            <summary>
            Gets the keys of the set as an enumeration.
            </summary>
            <returns>Enumeration of the keys</returns>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetBase`1.Comparer">
            <summary> 
            Gets the IComparer that is used to determine the order of the items in the sorted set
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetBase`1.Count">
            <summary> 
            Number of elements in this SortedSetBase
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetBase`1.IsEmpty">
            <summary>
            Returns true if 0 elements are in the set.
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetBase`1.IsReadOnly">
            <summary>
            Returns false
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetBase`1.Item(`0)">
            <summary>
            Given a lookup key, returns the corresponding key within the collection or null if not found
            </summary>
            <param name="key">The lookup key</param>
            <returns>The key matching the lookup key or null if not found</returns>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetBase`1.Keys">
            <summary>
            Gets the internal list of NodeKeys
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Add to a map
            </summary>
            <param name="keyValue">key and value being added</param>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.Add(`0,`1)">
            <summary>
            Add to a map
            </summary>
            <param name="key">key added</param>
            <param name="value">value added</param>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.Clear">
            <summary>
            Removes all keys and values from the map, leaving the map empty
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Check if map contains a key value pair
            </summary>
            <param name="keyValue"></param>
            <returns>true if map contains the key value pair</returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.ContainsKey(`0)">
            <summary>
            Checks if map contains a key
            </summary>
            <param name="aKey"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.GetEnumerator">
            <summary>
            
            </summary>
            <returns>Enumarator of all keys amd values in the map</returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.</param>
            <returns>true if the set contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
             throw new NotImplementedException();
            </summary>
            <param name="array">The destination array</param>
            <param name="index">The start index</param>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.isEmpty">
            <summary>
            Check if map is empty
            </summary>
            <returns>true if map is empty; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.Remove(`0)">
            <summary>
            Removes a key from the map (if found)
            </summary>
            <param name="key"></param>
            <returns>true if key was found and removed; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapBase`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Removes a key value pair from the map (if found)
            </summary>
            <param name="keyValue"></param>
            <returns>true if key was found and removed; otherwise false</returns>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapBase`2.Item(`0)">
            <summary>
            Gets or sets the value associated with a key
            </summary>
            <param name="key">The lookup key</param>
            <returns>The value associated with a key or throws KeyNotFoundException</returns>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapBase`2.Values">
            <summary>
            The map values as a list
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapOidShort`2.#ctor">
            <summary>
            Constructs a new empty map
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapOidShort`2.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0})">
            <summary>
            Constructs a new empty map with a given object comparator
            </summary>
            <param name="comparer"></param>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapOidShort`2.Comparer">
            <summary>
            Gets comparator
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapOidShort`2.Keys">
            <summary>
            Gets the internal list of keys
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapOidShort`2.Values">
            <summary>
            Gets the internal list of values
            </summary>
        </member>
        <member name="T:VelocityDb.NamespaceDoc">
            <summary>    
            The <see cref="N:VelocityDb"/> namespace contains classes for the VelocityDb Object Database Management System (ODBMS)   
            </summary>      
        </member>
        <member name="T:VelocityDb.WeakReferenceMustBePersistentException">
            <summary>
            Exception thrown when a persisted object wsa expected but was not.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeMapBase`2">
            <summary>
            
            </summary>
            <typeparam name="Key">The key type of objects in this BTreeMap</typeparam>  
            <typeparam name="Value">The value type of objects in this BTreeMap</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapBase`2.System#Collections#Generic#IEnumerable{System#Collections#Generic#KeyValuePair{Key@Value}}#GetEnumerator">
            <summary>
            Enumerates all Key objects within the BTree
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapBase`2.GetEnumerator">
            <summary>
            Enumerates all contained Key objects in sorted order
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapBase`2.Iterator">
            <summary>
            Initializes an iterator to find the keys and values of this map
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapBase`2.System#Collections#Generic#IEnumerable{Key}#GetEnumerator">
            <summary>
            Enumerates all contained Key objects in sorted order
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapBase`2.Last">
            <summary>
            Returns the last KeyValue object in this set.
            </summary>
            <returns>The last KeyValue in the collection according to the sort order used</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapBase`2.TryGetValue(`0,System.Byte[],`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="comparisonArray">The comparison array associated with the key to get.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.</param>
            <returns>true if the BTreeBase(Of Key) contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapBase`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.</param>
            <returns>true if the set contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeMapBase`2.Item(`0)">
            <summary>
            Given a lookup key, returns the corresponding value within the map or null if not found
            </summary>
            <param name="key">The lookup key</param>
            <returns>The value matching the lookup key or null if not found</returns>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeLeafBase`2.FlushIfPageFull">
            <summary>
            We don't want to flush other BTreeLeaf pages while looking for a placement page
            </summary>
        </member>
        <member name="T:VelocityDb.ObjectsPerPage">
            <summary>
            A field attribute that controlls how many objects that will be placed on the same page as the object of the field.
            </summary>
        </member>
        <member name="M:VelocityDb.ObjectsPerPage.#ctor(System.UInt16)">
            <summary>
            Use in class defenition preceeding a field declaration, i.e. [ObjectsPerPage(1)]
            </summary>
            <param name="limitPerPage">The requested maximum number of objects on the page.</param>
        </member>
        <member name="P:VelocityDb.ObjectsPerPage.LimitPerPage">
            <summary>
            Gets the requested maximum number of objects on the page
            </summary>
            <value>The <see cref="T:System.UInt16"/> number of objects.</value>
        </member>
        <member name="T:VelocityDb.TryingToBeginReadOnlyTransactionWhileInUpdateTransactionException">
            <summary>
            Exception thrown when attempting to start a read only transaction while in an update transaction.
            </summary>
        </member>
        <member name="T:VelocityDb.SystemDatabaseNotFoundWithReadonlyTransactionException">
            <summary>
            Exception thrown when a readonly transaction try to open a non existing Database 0
            </summary>
        </member>
        <member name="M:VelocityDb.SystemDatabaseNotFoundWithReadonlyTransactionException.#ctor(System.String)">
            <summary>
            Use for unexpected events
            </summary>
            <param name="message">Describe the unexpected event</param>
        </member>
        <member name="T:VelocityDb.Collection.Comparer.VelocityDbComparer`1">
            <summary>
            The base class of for comapring persistent objects. If the Key objects implements <see cref="T:System.IComparable"/> then the NodeKeys are compared that way, otherwise the <see cref="P:VelocityDb.OptimizedPersistable.Id"/> are compared
            </summary>
            <typeparam name="Key">The type of keys to compare</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.VelocityDbComparer`1.Compare(`0,`0)">
            <summary>
            If the Key objects implements <see cref="T:System.IComparable"/> then the NodeKeys are compared that way, otherwise the <see cref="P:VelocityDb.OptimizedPersistable.Id"/> are compared
            </summary>
            <param name="a">object a to compare</param>
            <param name="b">object b to compare with</param>
            <returns>-1 if a less than b, 0 if == and 1 if a is greater than b</returns>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.VelocityDbComparer`1.Compare(System.Byte[],System.Byte[],`0)">
            <summary>
            Here we provide a way to compare the bytes in a node comparison array with a the comparison array of a new object or lookup object.
            For instance, if your bytes is actually the bytes of a string, then convert the bytes to a string and then compare the two strings instead of simly comparing the byte values one by one.
            </summary>
            <param name="nodeComparisonData">Comparison array for a particular object within the sorted collection</param>
            <param name="comparisonArray">Comparison array for the object being added, removed or looked up</param>
            <param name="key">Key object associated with comparisonArray</param>
            <returns>A negative if nodeComparisonData ia less than comparisonArray and a positive number if greater, otherwise 0</returns>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.VelocityDbComparer`1.SetComparisonArrayFromObject(`0,System.Byte[],System.Boolean)">
            <summary>
            Comparators that use comparison arrays need to override this function. Given a Key object, set the comparisonArray bytes
            </summary>
            <param name="key">The object from which to extract the comparison array bytes</param>
            <param name="comparisonArray">The array containing the object comparison bytes</param>
            <param name="oidShort">If oidShort is true then only the page and slot numbers need to be compared if the comparator bytes includes any Oid bytes</param>
        </member>
        <member name="P:VelocityDb.Collection.Comparer.VelocityDbComparer`1.AddOidCompare">
            <summary>
            The default compare compares the object Oid's but subclasses may not want to do so as a last compare before declaring objects as being equal.
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Comparer.VelocityDbComparer`1.OidPartOfComparisonBytes">
            <summary>
            Is the Oid part of the comparison bytes? If so, we don't need to do a seperate Oid compare when Oid is part of compare
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Comparer.SimpleComparer`1">
            <summary>
            When the type of object being compared is a simple type like string, int, ..., this is the comparator you probably want to use.
            </summary>
            <typeparam name="T">The type of object to compare which must implement <see cref="T:System.IComparable"/></typeparam>
        </member>
        <member name="T:VelocityDb.Session.SessionBase">
            <summary>
            Transaction control, database creation and special persistent object api.
            Each session can use 4,294,967,296 <see cref="T:VelocityDb.Database"/>s. Each <see cref="T:VelocityDb.Database"/> may have up to 65,536 <see cref="T:VelocityDb.Page"/>s and a page can be up to 4,294,967,296 bytes in size.
            The maximum data size a single session can manage is: 4,294,967,296 * 65,536 * 4,294,967,296 = 1,208,925,819,614,629,174,706,176 bytes or about a Yottabyte http://en.wikipedia.org/wiki/Yottabyte
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.#ctor(System.String,System.String,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Constructor for the base session class
            </summary>
            <param name="systemDir">The directory containing the startup databases</param>
            <param name="systemHost">The host owning the startup directory</param>
            <param name="waitForLockMilliseconds">How long shall we wait for a lock before giving up?</param>
            <param name="optimisticLocking">Is this session requesting optimistic locking?</param>
            <param name="enableCache">Is this session going to enable a page and object cache?</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Finalize">
            <summary>
            Closes any open NetworkStream to connected VelocityDbServer(s)
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Abort">
            <summary>
            Transaction control, abort the current transaction
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.AllObjects``1">
            <summary>
            Gets an object used for enumerating all objects in all Databases
            </summary>
            <typeparam name="T">The type of object we are looking for</typeparam>
            <returns>The enumeration wrapper object</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.BeginRead(System.Boolean)">
            <summary>
            Transaction control, begin a read only transaction
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.BeginUpdate">
            <summary>
            Transaction control, begin an update transaction.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.BeginUpdate(System.Boolean)">
            <summary>
            Transaction control, begin an update transaction.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.BeginUpdate(System.Boolean,System.Boolean,System.Int32)">
            <summary>
            Transaction control, begin an update transaction.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.CachedPage(VelocityDb.Database,System.UInt16)">
            <summary>
            Looks for a cached page
            </summary>
            <param name="db">The Database containing the page</param>
            <param name="pageNumber">The page number of the page</param>
            <returns>The cached page or null if not found in cache</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Close">
            <summary>
            Aborts and active transaction and closes any network streams.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.ClearCache">
            <summary>
            Clears page cache and closes databases. Avoid using this one for now.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.ClearCashedPages">
            <summary>
            Clear cache of cached pages
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.ClearPageCache">
            <summary>
            Clears cached pages from cache including page weak rewferences.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.CompareTo(System.Object)">
            <summary>
            The defualt compare of two SessionBase is by system (bootup) host name and directory
            </summary>
            <param name="obj">The session to compare with</param>
            <returns>-1 if this session is less than the other, 0 if equal, otherwise 1</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.CrossTransactionCache(VelocityDb.Database,System.Boolean)">
            <summary>
            By default databases are only referenced by a Syste.WeakReference across transaction boundraries. 
            This means that such Database may or may not be avaialble as a cached database depending on garbage collection activity and if such database also has a strong reference.
            This function lets you add a strong reference to a Database so the cached Database may be used if version wasb't changed by a different thraed since prior transaction.
            The strong reference is removed once the Database is reopened.
            </summary>
            <param name="db">The Database to cache</param>
            <param name="enable">Add or remove strong reference. If true, add a strong reerence</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.CloseDatabase(VelocityDb.Database)">
            <summary>
            Closes a Database
            </summary>
            <param name="db">The Database to close</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Commit(System.Boolean)">
            <summary>
            Transaction control, commit the current transaction
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.DefaultDatabaseLocation">
            <summary>
            Gets the default (startup) DatabaseLocation
            </summary>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.DeleteDatabase(VelocityDb.Database)">
            <summary>
            Delete a database, actual database file delete happens after a successful transaction commit.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.FlushUpdates">
            <summary>
            Write all updated data. This may free up some memory.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.FlushUpdatesServers">
            <summary>
            Make servers Write all updated data. This may free up some memory on the servers. Only effects sessions using VelocityDbServer(s)
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.FlushUpdates(VelocityDb.Database)">
            <summary>
            Write any updated/new pages for a specific Database
            </summary>
            <param name="db">The database for which we want to write all updated pages</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.FlushUpdates(VelocityDb.Database,VelocityDb.DatabaseUpdatedPages,System.Boolean@)">
            <summary>
            Write all updated data for a particual database. This may free up some memory.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.GetEnumerator">
            <summary>
            Enumerates all open databases for this session
            </summary>
            <returns>Enumeration of open databases</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.System#Collections#Generic#IEnumerable{System#Object}#GetEnumerator">
            <summary>
            Creates an enumerator of all objects in all Databases.
            </summary>
            <returns>The enumerator (iterator)</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.LocateDb(System.UInt32)">
            <summary>
            Lookup the DatabaseLocation of a database with a particular database number.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.NewDatabase(System.UInt32,System.UInt32,System.String)">
            <summary>
            Create a new Database with a given database number
            </summary>
            <param name="dbNum">Database number of the database to create</param>
            <param name="megaBytesPresize">If you know that the Database will be large, presizing it may avoid file fragmentation. Default value is 0</param>
            <param name="name">Optionally name yje new Database</param>
            <returns>The newly created Database or throws and exception if the Database already exist</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.DeleteLocation(VelocityDb.DatabaseLocation)">
            <summary>
            Deletes a DatabaseLocation, location must first mot have any Databases in it
            </summary>
            <param name="location">The DatabaseLocation to delete</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.NewLocation(VelocityDb.DatabaseLocation)">
            <summary>
            Creates a new DatabaseLocation or updates existing ones
            </summary>
            <param name="location">The input location</param>
            <returns>The new DatabaseLocation or an existing one</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Objects``1">
            <summary>
            Enumarates all the objects of a given type
            </summary>
            <typeparam name="T">The type of object we are looking for</typeparam>
            <returns>An enumation of type T</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.HighestInUseDatabaseNumber">
            <summary>
            Figure out what the highest in use database number is and return it.
            </summary>
            <returns>The currently largest Database Id in use reachable from this session</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.HighestInUseLocalDatabaseNumber">
            <summary>
            Figure out what the highest in use database number is on the local host and return it.
            </summary>
            <returns>The currently largest Database Id in use reachable from this session located on localhost</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.FirstFreePage(VelocityDb.Database,System.UInt16)">
            <summary>
            Gets the page number of the first unallocated page in the specified Database
            </summary>
            <param name="db">The database to query</param>
            <param name="pageNumber">The page number to start search from</param>
            <returns>The first available page number.</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.InUseNumberOfPages(VelocityDb.Database)">
            <summary>
            Gets the number of pages currently in use by a Database
            </summary>
            <param name="db">The Database to request info about</param>
            <returns>The number of pages currently in use</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.IdOf(System.Object)">
            <summary>
            Finds the object id of a persistent object
            </summary>
            <param name="obj">The object to find the id for</param>
            <returns>The object id or 0 if object was not found</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.OidOf(System.Object)">
            <summary>
            Finds the object id of a persistent object
            </summary>
            <param name="obj">The object to find the id for</param>
            <returns>The object id or 0 if object was not found</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.OidShortOf(System.Object)">
            <summary>
            Finds the object id of a persistent object
            </summary>
            <param name="obj">The object to find the id for</param>
            <returns>The object id or 0 if object was not found</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Open(System.UInt64)">
            <summary>
            Opens a persistent object
            </summary>
            <param name="oid">The id of the object to open</param>
            <returns>The opened object or <c>null</c> if it does not exist</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Open(VelocityDb.Oid,System.Boolean)">
            <summary>
            Opens a persistent object
            </summary>
            <param name="oid">The id of the object to open</param>
            <param name="update">Open it for update?</param>
            <returns>The opened object or <c>null</c> if it does not exist</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Open(System.UInt32,VelocityDb.OidShort,System.Boolean)">
            <summary>
            Opens a persistent object
            </summary>
            <param name="oid">The id of the object to open</param>
            <param name="update">Open it for update?</param>
            <returns>The opened object or <c>null</c> if it does not exist</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.OpenDatabase(System.UInt32,System.Boolean,System.Boolean)">
            <summary>
            Opens a Database
            </summary>
            <param name="dbNum">The Database number of the database to open</param>
            <param name="update">Open the Database for update?</param>
            <param name="signalError">Signal errors if errors found when opening the Database?</param>
            <returns>The opened Database</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.OpenDatabaseLocations">
            <summary>
            Open the <see cref="P:VelocityDb.Session.SessionBase.DatabaseLocations"/> object and store it in the session.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Open(System.UInt32,System.UInt16,System.UInt16,System.Boolean)">
            <summary>
            Opens a persistent object
            </summary>
            <param name="dbNum">Database number of the object to open</param>
            <param name="pageNum">Page number of the object to open</param>
            <param name="slotNum">Slot number of the object to open</param>
            <param name="update">Open the object for update?</param>
            <returns>The opened object or null if it does not exist</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Open(System.UInt64,System.Boolean,System.Boolean)">
            <summary>
            Opens a persistent object
            </summary>
            <param name="oid">The Id of the object to open</param>
            <param name="update">Open the object for update?</param>
            <param name="inFlush">if true, disallow page flushing while opening the object</param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.OpenAllDatabases(System.Boolean)">
            <summary>
            Open all databases
            </summary>
            <param name="update">Open for update?</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.OpenLocationDatabases(VelocityDb.DatabaseLocation,System.Boolean)">
            <summary>
            Opens all the databases in a given location
            </summary>
            <param name="location">The location for which to open databases</param>
            <param name="update">Shall each database be opened for update?</param>
            <returns>A list of opened databases</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Persist(VelocityDb.Placement,VelocityDb.IOptimizedPersistable)">
            <summary>
            Persist an object that is an OptimizedPersistable or a subclass
            </summary>
            <param name="place">Provides placement guidance</param>
            <param name="obj">The object to persist</param>
            <returns>The Id of the persistent object</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Persist(System.Object,VelocityDb.Placement,System.Boolean)">
            <summary>
            Persist an object that may or may not be a subclass of OptimizedPersistable
            </summary>
            <param name="obj">The object to persist.</param>
            <param name="place">A placement guidance</param>
            <param name="inFlush">If true, disalloq page flushing</param>
            <returns>The Id of the persisted object.</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.Persist(System.Object,VelocityDb.OptimizedPersistable,System.Boolean)">
            <summary>
            Persist an object that may or may not be a subclass of OptimizedPersistable
            </summary>
            <param name="obj">The object to persist.</param>
            <param name="parent">A parent object of the object to persist.</param>
            <param name="inFlush">If true, disallow page flushing</param>
            <returns>The Id of the persisted object.</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.RegisterClass(System.Type)">
            <summary>
            Register a class in the persistent schema.
            It is a good idea to do this explicetly instead of having it happen the first time an object of an unregistered class is made persistent
            </summary>
            <param name="type">The type to register in the persistent schema</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.ClearCachedObjects">
            <summary>
            Clears the cache of cached objects.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.reopenDatabaseForRead(VelocityDb.Database,VelocityDb.TypeInfo.Schema,System.Boolean@,System.Boolean,System.Boolean)">
            <summary>
            Used with OptemisticLocking, reopen Database so that we can detect an updated database with updated page offsets
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.RestoreFrom(VelocityDb.DatabaseLocation,System.DateTime)">
            <summary>
            Restores Databases and pages from a backup DatabaseLocation. Existing data will be merged with the restored data unless existing Databases to restore are deleted before the restore.
            </summary>
            <param name="backupLocation">The location to restore from</param>
            <param name="upToTime">Restore location up to a given DateTime. Data backed up after this time will not be restored.</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.UpdateDatabase(VelocityDb.Database)">
            <summary>
            Request an update lock on a database
            </summary>
            <param name="db">The database to update</param>
            <returns>true if Database was updated, otherwise throws an exception</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.UpdateClass(System.Type)">
            <summary>
            Let VelocityDB know that changes have been made to a class so that the schema manager will create a new <see cref="T:VelocityDb.TypeInfo.TypeVersion"/> and use the new version for all new objects of the specified Type.
            </summary>
            <param name="type">The type that has been updated (new/removed/modified fields)</param>
            <returns>The new Type description</returns>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.PossiblyFlushUpdatedPages(System.UInt32)">
            <summary>
            Call this function if you may have updated many pages to possibly free up memory if too much memory is in use.
            </summary>
            <param name="numberOfUpdatedPagesPermittedWithoutFlushCheck">Only do check if the number of updated pages is greater than this number</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.SetTraceAllDbActivity(System.Boolean)">
            <summary>
            Enable some console output about persistent events related to all databases and pages.
            </summary>
            <param name="enable"></param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.SetTraceDbActivity(System.UInt32)">
            <summary>
            Enable some console output about persistent events related to a Database.
            </summary>
            <param name="dbId">The Database number of the Database to enable persistent trace information for.</param>
        </member>
        <member name="M:VelocityDb.Session.SessionBase.UpdateObject(System.Object)">
            <summary>
            Tag an object as updated so that it will be updated persistently
            </summary>
            <param name="obj">The object to update.</param>
            <returns></returns>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.AssumeLocalHost">
            <summary>
            SessionNoServer ignores DatabaseLocation host value, it assumes localhost, ServerSessionClient does not assume local host, it follows the DatabaseLocation HostName value.
            </summary>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.ClientCache">
            <summary>
            Gets the client page cache object
            </summary>
            <value>The <see cref="T:VelocityDb.DataCache"/></value>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.DatabaseLocations">
            <summary>
            Gets the DatabaseLocations<see cref="P:VelocityDb.Session.SessionBase.DatabaseLocations"/> for the session.
            </summary>
            <value>The <see cref="P:VelocityDb.Session.SessionBase.DatabaseLocations"/></value>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.Databases">
            <summary>
            Gets a list of the currently opened databases
            </summary>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.FileShareUpdater">
            <summary>
            Gets the FileShare mode to use depending on optimisticLocking being used.
            </summary>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.InTransaction">
            <summary>
            Indicates if we are within an active transaction.
            </summary>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.OptimisticLocking">
            <summary>
            Is the
            </summary>
        </member>
        <member name="P:VelocityDb.Session.SessionBase.TransactionNumber">
            <summary>
            Gets the transaction number of the current session
            </summary>
            <value>The transaction number</value>
        </member>
        <member name="M:VelocityDb.Session.ServerSession.BeginRead(System.Boolean)">
            <summary>
            Transaction control, begin a read only transaction
            </summary>
        </member>
        <member name="T:VelocityDb.DatabaseReadLockException">
            <summary>
            Exception thrown when a <see cref="T:VelocityDb.Database"/> level read lock failed.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeSetIterator`1">
            <summary>
            Iterates all the elements of a BTreeSet
            </summary>
            <typeparam name="Key">The type of the elements contained in the BTreeSet</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.Current">
            <summary>
            The iterator current Key object
            </summary>
            <returns>The Ket at the current iterator position</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.GoTo(`0)">
            <summary>
            Positions iterator at Key object or where Key would be inserted if added to the set.
            </summary>
            <param name="key">The object to position iterator near</param>
            <returns>true if an exact match was found; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.GoTo(`0,System.Byte[])">
            <summary>
            Positions iterator at Key object or where Key would be inserted if added to the set. This function is normally only used internally by VelocityDb.
            </summary>
            <param name="key">The object to position iterator near</param>
            <param name="comparisonArray">Contains bytes used for comparing with other arrays for NodeKeys within the set</param>
            <returns>true if an exact match was found; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.GoToLast">
            <summary>
            Positions iterator at the last object in the set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.MoveNext">
            <summary>
            Advances the enumerator to the next element of the collection.
            </summary>
            <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.MovePrevious">
            <summary>
            Advances the enumerator to the previous element of the collection.
            </summary>
            <returns>true if the enumerator was successfully advanced to the previous element; false if the enumerator has reached the position prior to the the start of the collection.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.Next">
            <summary>
            Positions the iterator at the next Key in the set. Only use this one with nullable Key type.
            </summary>
            <returns>The next Key or null if we iterated past the the end of the set.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.Previous">
            <summary>
            Positions the iterator at the previous Key in the set
            </summary>
            <returns>The previous Key or null if we iterated to a postion before the first Key in the set.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetIterator`1.Remove">
            <summary>
            Not yet ready for public use (testing internally first)
            </summary>
        </member>
        <member name="T:VelocityDb.Session.SessionNoServerShared">
            <summary>
            Same as SessionNoServer but SessionNoServerShared is thread safe so it can be shared between threads.
            </summary>
        </member>
        <member name="T:VelocityDb.Session.SessionNoServer">
            <summary>
            Use this session class when <see cref="T:VelocityDb.Database"/> level locking is acceptable and <see cref="T:VelocityDb.Database"/>s are local or reachable by UNC paths.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.SessionNoServer.#ctor(System.String,System.Boolean,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new session. For a thread safe version of this class, use <see cref="T:VelocityDb.Session.SessionNoServerShared"/>
            </summary>
            <param name="systemDir">The startup location directory path</param>
            <param name="readOnly">Is the session going to be read only (no updates)?</param>
            <param name="waitForLockMilliseconds">The desired maximum lock wait time</param>
            <param name="optimisticLocking">Use optimistic locking. With optimistic locking, readers are always permitted and multiple updaters are permitted to update the same Databases/Pages but only the the first transaction to commit or flush an updated Database/Page will be successful in making the commited chane. Other updaters will get an OptimisticLockingException if they try to commit/flush updates to the same Pages/Database.
            See http://en.wikipedia.org/wiki/Optimistic_concurrency_control for further explnation of optimistic locking. If optimistic locking is not enabled then pessimistic locking is used. See: http://en.wikipedia.org/wiki/Concurrency_control
            </param>
            <param name="enableCache">If page and object caching isn't desired, turn it of by setting to false</param>
        </member>
        <member name="M:VelocityDb.Session.SessionNoServer.Commit(System.Boolean)">
            <summary>
            Commits a transaction
            </summary>
            <param name="doRecoveryCheck">Set to false when restoring data from a backup, otherwise use the default, true</param>
        </member>
        <member name="M:VelocityDb.Session.SessionNoServer.UpdateDatabase(VelocityDb.Database)">
            <summary>
            Request an update lock on a database
            </summary>
            <param name="db">The database to update</param>
            <returns>true if Database was updated, otherwise throws an exception</returns>
        </member>
        <member name="P:VelocityDb.Session.SessionNoServer.AssumeLocalHost">
            <summary>
            SessionNoServer ignores DatabaseLocation HostName since it cannot connect to a VelocityDbServer.
            </summary>
        </member>
        <member name="T:VelocityDb.InvalidChangeOfDatabaseLocation">
            <summary>
            Exception thrown when trying to do an invalid change of a <see cref="T:VelocityDb.DatabaseLocation"/>. It could be a change to the start database number that if permitted skips one or more other DatabaseLocations.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.NodeBase.calculateMinimumBoundingRectangle">
            <summary>
            Given a node object, calculate the node Minimum Bounding Rectangle from it's entries. Used in consistency checking
            </summary>
            <param name="n"></param>
            <returns></returns>  
        </member>
        <member name="T:VelocityDb.OptimisticLockingFailed">
            <summary>
            Exception thrown when a optimistic locking failed due to another transcation having updated a Page or Database.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeNodeIterator`2">
            <summary>
            
            </summary>
            <typeparam name="Key">The Type of element contained (OptimizedPersistable or subclass)</typeparam>
        </member>
        <member name="T:VelocityDb.License">
            <summary>
            Contains a list of possible license attributes for licensing VelocityDb class library and server
            </summary>
        </member>
        <member name="F:VelocityDb.License.PlaceInDatabase">
            <summary>
            Hint about a Database location for this type of object.
            </summary>
        </member>
        <member name="F:VelocityDb.License.LicenseCheckDatabase">
            <summary>
            The Database number of the database containg a VelocityDb licence(s)
            </summary>
        </member>
        <member name="M:VelocityDb.License.#ctor">
            <summary>
            Creates a new unrestricted license
            </summary>
        </member>
        <member name="M:VelocityDb.License.#ctor(System.String,System.UInt32,System.Int32)">
            <summary>
            Creates a new restricted license
            </summary>
            <param name="forHostName">Usage valid on this host only</param>
            <param name="forMaxNumberOfClients">Maximum number of server clients for which license is valid</param>
            <param name="validForHowManyDays">Restricts usgage to this number of days from now</param>
        </member>
        <member name="M:VelocityDb.License.#ctor(System.String,System.UInt32,System.String,System.String,System.String,System.UInt32,System.DateTime,System.Int32,System.Int32,System.Int32)">
            <summary>
            Creates a new restricted license
            </summary>
            <param name="customer">A string identifying the customer owning the license</param>
            <param name="customerId">The OidShort of the customer</param>
            <param name="forUserName">Usage valid on this user name</param>
            <param name="forHostName">Usage valid on this host only</param>
            <param name="forDomainName">Usage valid on this domain only</param>
            <param name="forMaxNumberOfClients">Maximum number of server clients for which license is valid</param>
            <param name="expireDate">License expiration time</param>
            <param name="versionMajor">Usage valid up to including this major version</param>
            <param name="versionMinor">Usage valid up to including this minor version</param>
            <param name="processorCount">Usage valid up to this number of processors</param>
        </member>
        <member name="P:VelocityDb.License.DomainName">
            <summary>
            Gets the restricted domain name
            </summary>
        </member>
        <member name="P:VelocityDb.License.HostName">
            <summary>
            Gets the restricted host name
            </summary>
        </member>
        <member name="P:VelocityDb.License.DateTimeCreated">
            <summary>
            Gets the time of license creation.
            </summary>
        </member>
        <member name="P:VelocityDb.License.ExpireDate">
            <summary>
            Gets expire time.
            </summary>
        </member>
        <member name="P:VelocityDb.License.MaxNumberOfClients">
            <summary>
            Gets the maximum number of Server clients permitted by this license
            </summary>
        </member>
        <member name="P:VelocityDb.License.ObjectsPerPage">
            <summary>
            Store one License per Page
            </summary>
            <returns></returns>
        </member>
        <member name="P:VelocityDb.License.ProcessorCount">
            <summary>
            Gets/sets maximum number of processors for which license is valid.
            </summary>
        </member>
        <member name="P:VelocityDb.License.UserName">
            <summary>
            Gets the user name restriction
            </summary>
        </member>
        <member name="P:VelocityDb.License.PlacementDatabaseNumber">
            <summary>
            Gets the preffered Database number for licenses
            </summary>
        </member>
        <member name="P:VelocityDb.License.MajorVersion">
            <summary>
            Gets/set sthe major version asttribute of a license
            </summary>
        </member>
        <member name="P:VelocityDb.License.MinorVersion">
            <summary>
            Gets/set sthe minor version asttribute of a license
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Spatial.Rectangle">
            <summary>
            
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            
            </summary>
            <param name="x1">coordinate of any corner of the rectangle</param>
            <param name="y1">(see x1)</param>
            <param name="x2">coordinate of the opposite corner</param>
            <param name="y2">(see x2)</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.set(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Sets the size of this rectangle to equal the passed rectangle.
            </summary>
            <param name="r"></param>  
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.edgeOverlaps(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Determine whether an edge of this rectangle overlies the equivalent edge of the passed rectangle
            </summary>
            <param name="r"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.Intersects(System.Nullable{VelocityDb.Collection.Spatial.Rectangle}@)">
            <summary>
            Determine whether this rectangle intersects the passed rectangle
            </summary>
            <param name="r">The rectangle that might intersect this rectangle</param>
            <returns>return true if the rectangles intersect, false if they do not intersect</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.Contains(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Determine whether this rectangle contains the passed rectangle
            </summary>
            <param name="r">The rectangle that might be contained by this rectangle</param>
            <returns>return true if this rectangle contains the passed rectangle, false if it does not</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.containedBy(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Determine whether this rectangle is contained by the passed rectangle
            </summary>
            <param name="r">The rectangle that might contain this rectangle</param>
            <returns>return true if the passed rectangle contains this rectangle, false if it does not</returns> 
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.Distance(VelocityDb.Collection.Spatial.Point)">
            <summary>
            Return the distance between this rectangle and the passed point. If the rectangle contains the point, the distance is zero.
            </summary>
            <param name="p">Point to find the distance to</param>
            <returns>return distance beween this rectangle and the passed point.</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.distance(System.Double,System.Double)">
            <summary>
            Return the distance between a rectangle and a point. If the rectangle contains the point, the distance is zero.
            </summary>
            <param name="pX">X coordinate of point</param>
            <param name="pY">Y coordinate of point</param>
            <returns>return distance beween this rectangle and the passed point.</returns>  
        </member>
        <!-- Badly formed XML comment ignored for member "M:VelocityDb.Collection.Spatial.Rectangle.distanceSq(System.Double,System.Double)" -->
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.Distance(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Return the distance between this rectangle and the passed rectangle. If the rectangles overlap, the distance is zero.
            </summary>
            <param name="r">Rectangle to find the distance to</param>
            <returns>return distance between this rectangle and the passed rectangle</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.Enlargement(VelocityDb.Collection.Spatial.Rectangle@)">
            <summary>
            Calculate the area by which this rectangle would be enlarged if added to the passed rectangle. Neither rectangle is altered.
            </summary>
            <param name="r">Rectangle to union with this rectangle, in order to compute the difference in area of the union and the original rectangle</param>
            <returns>enlargement</returns> 
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.enlargement(VelocityDb.Collection.Spatial.Rectangle,VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Calculate the area by which a rectangle would be enlarged if added to the passed rectangle
            </summary>
            <param name="r1">minimum X coordinate of rectangle 1</param>
            <param name="r2">minimum X coordinate of rectangle 2</param>
            <returns>return enlargement</returns> 
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.Add(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Computes the union of this rectangle and the passed rectangle, storing the result in this rectangle.
            </summary>
            <param name="r">Rectangle to add to this rectangle</param> 
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.add(VelocityDb.Collection.Spatial.Point)">
            <summary>
            Computes the union of this rectangle and the passed point, storing the result in this rectangle.
            </summary>
            <param name="p">Point to add to this rectangle</param>  
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.union(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Find the the union of this rectangle and the passed rectangle.Neither rectangle is altered
            </summary>
            <param name="r">The rectangle to union with this rectangle</param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.GetHashCode">
            <summary>
            Customized hash code using the coordinates of the rectangle 37 * minX * minY * maxX * maxY
            </summary>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.sameObject(System.Object)">
            <summary>
            Determine whether this rectangle is the same as another object. Note that two rectangles can be equal but not the same object, if they both have the same bounds.
            </summary>
            <param name="o">The object to compare with this rectangle</param>
            <returns></returns>   
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Rectangle.ToString">
            <summary>
            Return a string representation of this rectangle, in the form: (1.2, 3.4), (5.6, 7.8)
            </summary>
            <returns>return String String representation of this rectangle</returns>   
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.MinX">
            <summary>
            The low x coordinate
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.MaxX">
            <summary>
            The high x coordinate
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.MinY">
            <summary>
            The low y coordinate
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.MaxY">
            <summary>
            The high y coordinate
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.Area">
            <summary>
            Compute the area of this rectangle.
            </summary>
            <returns>The area of this rectangle</returns>  
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.Width">
            <summary>
            The width of a rectangle
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.Height">
            <summary>
            The height of a rectangle
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.AspectRatio">
            <summary>
            The aspect ratio denotes the ratio of length to width of the rectangle (Width / Height)
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.Rectangle.Centre">
            <summary>
            Gets the centre of the rectangle
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeSetOidShort`1">
            <summary>Represents a collection of objects that is maintained in sorted order. Collection and all objects must be within a single Database (since references uses OidShort persistently)
            </summary>
            <typeparam name="Key">The object type of objects in this BTree, currently must be a subclass of <see cref="T:VelocityDb.OptimizedPersistable"/></typeparam>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0},VelocityDb.Session.SessionBase,System.UInt16,System.UInt16,System.Boolean)">
            <summary>
            Creates a new BTreeSet
            </summary>
            <param name="maxEntriesPerNode">Determines internal array and Page sizes</param>
            <param name="comparer">An object comparer. Try using CompareByField</param>
            <param name="session">The session managing this object</param>
            <param name="comparisonArraySize">Determine how many bytes to reserve for each object within a BTree node as a way to avoid actual object compares.</param>
            <param name="comparisonArrayIsCompleteKey">If the comparison array bytes are all that needs to be compared to determine ordering then set this to true; otherwise false</param>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.Clear">
            <summary>
            Removes all elements from the set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.System#Collections#Generic#IEnumerable{Key}#GetEnumerator">
            <summary>
            Enumerates all Key objects within the BTree
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.GetEnumerator">
            <summary>
            Enumerates all contained Key objects in sorted order
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.First">
            <summary>
            Returns the first Key object in this set.
            </summary>
            <returns>The first Key in the collection according to the sort order used</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.Iterator">
            <summary>
            Initializes an iterator to find the keys of this set
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.Last">
            <summary>
            Returns the last Key object in this set.
            </summary>
            <returns>The last Key in the collection according to the sort order used</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeSetOidShort`1.Unpersist(VelocityDb.Session.SessionBase,System.Boolean)">
            <summary>
            Removes an object from the persistent store and makes the object a transient object. Also makes all other objects part of the BTree transient (but not the Key objects)
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeSetOidShort`1.Comparer">
            <summary>
            Gets the VelocityDbComparer object that is used to compare Key objects.
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeInternalBase`2.Cache">
            <summary>
            We do want to cache this kind of object since they are likly to be frequently used.
            </summary>
        </member>
        <member name="T:VelocityDb.WeakReferenceBase">
            <summary>This is the base class for all weak references.</summary>
        </member>
        <member name="T:VelocityDb.TypeInfo.Schema">
            <summary>
            Holds information about persistently stored types. Used internally by VelocityDb.
            </summary>
        </member>
        <member name="T:VelocityDb.MaxNumberOfDatabasesException">
            <summary>
            Exception thrown when trying to create a <see cref="T:VelocityDb.Database"/> but no more Database numbers are available. The Maximum Database number is <see cref="F:System.UInt32.MaxValue"/> or 13 if no valid license is found.
            </summary>
        </member>
        <member name="T:VelocityDb.DesKeyMissingException">
            <summary>
            Exception thrown when an internal error was detected. This type of error is most likly due to a bug in VelocityDb.
            </summary>
        </member>
        <member name="T:VelocityDb.DatabaseAlreadyExistsException">
            <summary>
            Exception thrown when trying to create a <see cref="T:VelocityDb.Database"/> that already exist (file system file exist).
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.SortedMap`2">
            <summary>
            A sorted map
            </summary>
            <typeparam name="Key">Element key type</typeparam>
            <typeparam name="Value">Element value type</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.SortedMap`2.#ctor(System.Int32)">
            <summary>
            Constructs a new map
            </summary>
            <param name="capacity">Presizes internal list to a requested size</param>   
        </member>
        <member name="M:VelocityDb.Collection.SortedMap`2.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0})">
            <summary>
            Constructs a new map with a given comparator
            </summary>
            <param name="comparer">The comaparator is referenced by a OidShort so it must exist within the same Database as the SortedMap</param>
        </member>
        <member name="P:VelocityDb.Collection.SortedMap`2.Comparer">
            <summary>
            Gets the Key comparator of the map
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedMap`2.Keys">
            <summary>
            Gets the internal list of NodeKeys
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedMap`2.Values">
            <summary>
            Gets the internal list of NodeValues
            </summary>
        </member>
        <member name="T:VelocityDb.PageInfo">
            <summary>Each <see cref="T:VelocityDb.Page"/> has a PageInfo that provides info about a page and can be used to turn on/off compression and encryption for a page.
            </summary>
        </member>
        <member name="F:VelocityDb.PageInfo.PageInfoByteCount">
            <summary>
            The size of the <see cref="T:VelocityDb.PageInfo"/> at the start of each <see cref="T:VelocityDb.Page"/>.
            </summary>
        </member>
        <member name="P:VelocityDb.PageInfo.Compressed">
            <summary>
            A <see cref="T:VelocityDb.Page"/> can be compressed or not.
            </summary>
            <value>The <see cref="T:System.Boolean"/></value>
        </member>
        <member name="P:VelocityDb.PageInfo.Encryption">
            <summary>
            A <see cref="T:VelocityDb.Page"/> can be encrypted with DES or not.
            </summary>
            <value>The <see cref="T:VelocityDb.PageInfo.encryptionKind"/></value>
        </member>
        <member name="P:VelocityDb.PageInfo.FirstFreeSlot">
            <summary>
            The first available page on the <see cref="T:VelocityDb.Page"/>.
            </summary>
        </member>
        <member name="P:VelocityDb.PageInfo.NumberOfSlots">
            <summary>
            The number of objects/slots on the <see cref="T:VelocityDb.Page"/>.
            </summary>
            <value>The <see cref="T:System.UInt16"/> of objects/slots on the page</value>
        </member>
        <member name="P:VelocityDb.PageInfo.OnDiskSize">
            <summary>
            The byte size of the <see cref="T:VelocityDb.Page"/> when it was last written to disk.
            </summary>
            <value>The <see cref="T:System.UInt32"/> of bytes</value>
        </member>
        <member name="P:VelocityDb.PageInfo.ShapeNumber">
            <summary>
            If non 0, all objects on the page have the same Type.
            </summary>
        </member>
        <member name="P:VelocityDb.PageInfo.VersionNumber">
            <summary>
            Each <see cref="T:VelocityDb.Page"/> gets its page version incremented in every transaction where the it is updated.
            </summary>
            <value>The current <see cref="T:System.UInt64"/> page version</value>    
        </member>
        <member name="T:VelocityDb.PageInfo.encryptionKind">
            <summary>Use <see cref="F:VelocityDb.PageInfo.encryptionKind.desEncrypted"/> for encrypted pages, set encryption private key in <see cref="T:VelocityDb.DatabaseLocation"/>. Use <see cref="F:VelocityDb.PageInfo.encryptionKind.noEncryption"/> when no encryption is desired.
            Other choices in this enum are not yet publicly available. Other kinds of encryption can be provided upon request.
            </summary>
        </member>
        <member name="F:VelocityDb.PageInfo.encryptionKind.noEncryption">
            <summary>No <see cref="T:VelocityDb.Page"/> encryption</summary>
        </member>
        <member name="F:VelocityDb.PageInfo.encryptionKind.desEncrypted">
            <summary>Use DES <see cref="T:VelocityDb.Page"/> encryption</summary>
        </member>
        <member name="F:VelocityDb.PageInfo.encryptionKind.rsaEncrypted2048">
            <summary>Use RSA 2048bits <see cref="T:VelocityDb.Page"/> encryption (not yet made publicly available)</summary>
        </member>
        <member name="F:VelocityDb.PageInfo.encryptionKind.rsaSigned2048">
            <summary>Use RSA 2048bits <see cref="T:VelocityDb.Page"/> signing (not yet made publicly available)</summary>
        </member>
        <member name="T:VelocityDb.UnexpectedException">
            <summary>
            Exception thrown when something unexpected happened and no specific exception exist for it.
            </summary>
        </member>
        <member name="M:VelocityDb.UnexpectedException.#ctor(System.String)">
            <summary>
            Use for unexpected events
            </summary>
            <param name="message">Describe the unexpected event</param>
        </member>
        <member name="T:VelocityDb.OpenDatabaseException">
            <summary>
            Exception thrown when openeing a <see cref="T:VelocityDb.Database"/> failed.
            </summary>
        </member>
        <member name="T:VelocityDb.NotInTransactionException">
            <summary>
            Exception thrown when trying to do persitent operations without first starting a transaction.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Comparer.NamespaceDoc">
            <summary>    
            The <c>VelocityDb.Collection.Comparer</c> namespace contains classes for the VelocityDb Comparer classes optimized for persistent storage in VelocityDb databases
            </summary>      
        </member>
        <member name="T:VelocityDb.AllObjects`1">
            <summary>
            An object of this type is returned by <see cref="M:VelocityDb.Session.SessionBase.AllObjects``1"/> or <see cref="M:VelocityDb.Database.AllObjects``1"/>
            </summary>
            <typeparam name="T">The object type we are looking for in the iteration (enumeration)</typeparam>
        </member>
        <member name="M:VelocityDb.AllObjects`1.#ctor(VelocityDb.Session.SessionBase)">
            <summary>
            Constructs this enumeration wrapper object
            </summary>
            <param name="session">The active session</param>
        </member>
        <member name="M:VelocityDb.AllObjects`1.#ctor(VelocityDb.Database)">
            <summary>
            Constructs this enumeration wrapper object
            </summary>
            <param name="db">The active db</param>
        </member>
        <member name="M:VelocityDb.AllObjects`1.GetEnumerator">
            <summary>
            Enumration of all objects of type T
            </summary>
            <returns>The enumarator of T</returns>
        </member>
        <member name="T:VelocityDb.TypeInfo.NamespaceDoc">
            <summary>    
            The <c>VelocityDb.TypeInfo</c> namespace contains classes for Type information of persistently stored data
            </summary>      
        </member>
        <member name="T:VelocityDb.Collection.VelocityDbHashSet`1">
            <summary>
            A hash code based set
            </summary>
            <typeparam name="T">The object type of objects in the hashset</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.#ctor">
            <summary>
            Creates a hashset using a default equality comparer
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates hashset with a given equality comparer
            </summary>
            <param name="comparer"></param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates a new hashset using the default equlaity comparer
            </summary>
            <param name="collection">Initial objects added to the hashset</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Implementation Notes: 
            Since resizes are relatively expensive (require rehashing), this attempts to minimize 
            the need to resize by setting the initial capacity based on size of collection.
            </summary> 
            <param name="collection"></param>
            <param name="comparer"></param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Used by serializtion (but not by VelocityDb persistent serializtion)
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
            <summary>
            Add item to this hashset. This is the explicit implementation of the ICollection
            interface. The other Add method returns bool indicating whether item was added. 
            </summary>
            <param name="item">item to add</param> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Clear">
            <summary>
            Remove all items from this set. This clears the elements but not the underlying
            buckets and slots array. Follow this call by TrimExcess to release these. 
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Contains(`0)">
            <summary>
            Checks if this hashset contains the item 
            </summary>
            <param name="item">item to check for containment</param> 
            <returns>true if item contained; false if not</returns> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.CopyTo(`0[],System.Int32)">
            <summary> 
            Copy items in this hashset to array, starting at arrayIndex
            </summary> 
            <param name="array">array to add items to</param> 
            <param name="arrayIndex">index to start at</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Remove(`0)">
            <summary> 
            Remove item from this hashset
            </summary> 
            <param name="item">item to remove</param> 
            <returns>true if removed; false if not (i.e. if the item wasn't in the VelocityDbHashSet)</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection
            </summary>
            <returns>An Enumerator object that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization usage other than VelocityDb serialization
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Add(`0)">
            <summary> 
            Add item to this VelocityDbHashSet. Returns bool indicating whether item was added (won't be 
            added if already present)
            </summary> 
            <param name="item"></param>
            <returns>true if added, false if already present</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
            <summary> 
            Take the union of this VelocityDbHashSet with other. Modifies this set.
            
            Implementation note: GetSuggestedCapacity (to increase capacity in advance avoiding
            multiple resizes ended up not being useful in practice; quickly gets to the
            point where it's a wasteful check.
            </summary> 
            <param name="other">enumerable with items to add</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
            <summary> 
            Takes the intersection of this set with other. Modifies this set.
            
            Implementation Notes:
            We get better perf if other is a hashset using same equality comparer, because we
            get constant contains check in other. Resulting cost is O(n1) to iterate over this.
            
            If we can't go above route, iterate over the other and mark intersection by checking
            contains in this. Then loop over and delete any unmarked elements. Total cost is n2+n1. 
            
            Attempts to return early based on counts alone, using the property that the
            intersection of anything with the empty set is the empty set. 
            </summary>
            <param name="other">enumerable with items to add </param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Remove items in other from this set. Modifies this set.
            </summary> 
            <param name="other">enumerable with items to remove</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
            <summary> 
            Takes symmetric difference (XOR) with other and this set. Modifies this set.
            </summary>
            <param name="other">enumerable with items to XOR</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
             <summary>
             Checks if this is a subset of other. 
            
             Implementation Notes: 
             The following properties are used up-front to avoid element-wise checks: 
             1. If this is the empty set, then it's a subset of anything, including the empty set
             2. If other has unique elements according to this equality comparer, and this has more 
             elements than other, then it can't be a subset.
            
             Furthermore, if other is a hashset using the same equality comparer, we can use a
             faster element-wise check. 
             </summary>
             <param name="other"></param> 
             <returns>true if this is a subset of other; false if not</returns> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
             <summary>
             Checks if this is a proper subset of other (i.e. strictly contained in) 
             
             Implementation Notes:
             The following properties are used up-front to avoid element-wise checks: 
             1. If this is the empty set, then it's a proper subset of a set that contains at least
             one element, but it's not a proper subset of the empty set.
             2. If other has unique elements according to this equality comparer, and this has >=
             the number of elements in other, then this can't be a proper subset. 
            
             Furthermore, if other is a hashset using the same equality comparer, we can use a 
             faster element-wise check. 
             </summary>
             <param name="other"></param> 
             <returns>true if this is a proper subset of other; false if not</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary> 
            Checks if this is a superset of other
            
            Implementation Notes:
            The following properties are used up-front to avoid element-wise checks:
            1. If other has no elements (it's the empty set), then this is a superset, even if this
            is also the empty set. 
            2. If other has unique elements according to this equality comparer, and this has less
            than the number of elements in other, then this can't be a superset 
            
            </summary>
            <param name="other"></param> 
            <returns>true if this is a superset of other; false if not</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
             <summary> 
             Checks if this is a proper superset of other (i.e. other strictly contained in this)
            
             Implementation Notes:
             This is slightly more complicated than above because we have to keep track if there 
             was at least one element not contained in other.
             
             The following properties are used up-front to avoid element-wise checks: 
             1. If this is the empty set, then it can't be a proper superset of any set, even if
             other is the empty set. 
             2. If other is an empty set and this contains at least 1 element, then this is a proper
             superset.
             3. If other has unique elements according to this equality comparer, and other's count
             is greater than or equal to this count, then this can't be a proper superset 
            
             Furthermore, if other has unique elements according to this equality comparer, we can 
             use a faster element-wise check. 
             </summary>
             <param name="other"></param> 
             <returns>true if this is a proper superset of other; false if not</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Checks if this set overlaps other (i.e. they share at least one item) 
            </summary>
            <param name="other"></param> 
            <returns>true if these have at least one common element; false if disjoint</returns> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
            <summary> 
            Checks if this and other contain the same elements. This is set equality: 
            duplicates and order are ignored
            </summary> 
            <param name="other"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.CopyTo(`0[])">
            <summary>
            Copies the entire List to a compatible one-dimensional array, starting at the beginning of the target array. 
            </summary>
            <param name="array">The one-dimensional Array that is the destination of the elements copied from List. The Array must have zero-based indexing.</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.CopyTo(`0[],System.Int32,System.Int32)">
            <summary>
            Copies a range of elements from the List(Of T) to a compatible one-dimensional array, starting at the specified index of the target array.
            </summary>
            <param name="array">The one-dimensional Array that is the destination of the elements copied from List(Of T). The Array must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in the source List(Of T) at which copying begins.</param>
            <param name="count">The number of elements to copy.</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.RemoveWhere(System.Predicate{`0})">
            <summary>
            Remove elements that match specified predicate. Returns the number of elements removed 
            </summary>
            <param name="match"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.TrimExcess">
             <summary>
             Sets the capacity of this list to the size of the list (rounded up to nearest prime), 
             unless count is 0, in which case we release references.
            
             This method can be used to minimize a list's memory overhead once it is known that no
             new elements will be added to the list. To completely clear a list and release all 
             memory referenced by the list, execute the following statements:
             
             list.Clear(); 
             list.TrimExcess();
             </summary> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.CreateSetComparer">
            <summary>
            Used for deep equality of VelocityDbHashSet testing 
            </summary>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Initialize(System.Int32)">
            <summary>
            Initializes buckets and slots arrays. Uses suggested capacity by finding next prime
            greater than or equal to capacity. 
            </summary>
            <param name="capacity"></param> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IncreaseCapacity">
            <summary> 
            Expand to new capacity. New capacity is next prime greater than or equal to suggested
            size. This is called when the underlying array is filled. This performs no 
            defragmentation, allowing faster execution; note that this is reasonable since
            AddIfNotPresent attempts to insert new elements in re-opened spots.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.AddIfNotPresent(`0)">
            <summary>
            Adds value to VelocityDbHashSet if not contained already
            Returns true if added and false if already present 
            </summary>
            <param name="value">value to find</param> 
            <returns></returns> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.ContainsAllElements(System.Collections.Generic.IEnumerable{`0})">
            <summary> 
            Checks if this contains of other's elements. Iterates over other's elements and
            returns false as soon as it finds an element in other that's not in this. 
            Used by SupersetOf, ProperSupersetOf, and SetEquals.
            </summary>
            <param name="other"></param>
            <returns></returns> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IsSubsetOfHashSetWithSameEC(VelocityDb.Collection.VelocityDbHashSet{`0})">
             <summary>
             Implementation Notes: 
             If other is a hashset and is using same equality comparer, then checking subset is 
             faster. Simply check that each element in this is in other.
             
             Note: if other doesn't use same equality comparer, then Contains check is invalid,
             which is why callers must take are of this.
            
             If callers are concerned about whether this is a proper subset, they take care of that. 
            
             </summary> 
             <param name="other"></param> 
             <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.IntersectWithHashSetWithSameEC(VelocityDb.Collection.VelocityDbHashSet{`0})">
            <summary>
            If other is a hashset that uses same equality comparer, intersect is much faster
            because we can use other's Contains
            </summary> 
            <param name="other"></param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.InternalIndexOf(`0)">
            <summary>
            Used internally by set operations which have to rely on bit array marking. This is like 
            Contains but returns index in slots array.
            </summary> 
            <param name="item"></param> 
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.SymmetricExceptWithUniqueHashSet(VelocityDb.Collection.VelocityDbHashSet{`0})">
            <summary> 
            if other is a set, we can assume it doesn't have duplicate elements, so use this
            technique: if can't remove, then it wasn't present in this set, so add. 
            
            As with other methods, callers take care of ensuring that other is a hashset using the
            same equality comparer. 
            </summary>
            <param name="other"></param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.AddOrGetLocation(`0,System.Int32@)">
            <summary> 
            Add if not already in hashset. Returns an out param indicating index where added. This 
            is used by SymmetricExcept because it needs to know the following things:
            - whether the item was already present in the collection or added from other 
            - where it's located (if already present, it will get marked for removal, otherwise
            marked for keeping)
            </summary>
            <param name="value"></param> 
            <param name="location"></param>
            <returns></returns> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.ToArray">
            <summary> 
            Copies this to an array. Used for DebugView 
            </summary>
            <returns></returns> 
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.HashSetEquals(VelocityDb.Collection.VelocityDbHashSet{`0},VelocityDb.Collection.VelocityDbHashSet{`0},System.Collections.Generic.IEqualityComparer{`0})">
             <summary> 
             Internal method used for HashSetEqualityComparer. Compares set1 and set2 according
             to specified comparer. 
            
             Because items are hashed according to a specific equality comparer, we have to resort
             to n^2 search if they're using different equality comparers.
             </summary> 
             <param name="set1"></param>
             <param name="set2"></param> 
             <param name="comparer"></param> 
             <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.AreEqualityComparersEqual(VelocityDb.Collection.VelocityDbHashSet{`0},VelocityDb.Collection.VelocityDbHashSet{`0})">
            <summary> 
            Checks if equality comparers are equal. This is used for algorithms that can
            speed up if it knows the other item has unique elements. I.e. if they're using 
            different equality comparers, then uniqueness assumption between sets break. 
            </summary>
            <param name="set1"></param> 
            <param name="set2"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.InternalGetHashCode(`0)">
            <summary> 
            Workaround Comparers that throw ArgumentNullException for GetHashCode(null).
            </summary> 
            <param name="item"></param>
            <returns>hash code</returns>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbHashSet`1.Count">
            <summary> 
            Number of elements in this hashset
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbHashSet`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
            <summary> 
            Whether this is readonly
            </summary> 
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbHashSet`1.Comparer">
            <summary> 
            Gets the IEqualityComparer that is used to determine equality of keys for
            the VelocityDbHashSet. 
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.VelocityDbHashSet`1.Enumerator">
            <summary>
            Enumerates the elements of a VelocityDbHashSet(Of T).
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Enumerator.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbHashSet`1.Enumerator.MoveNext">
            <summary>
            Advances the enumerator to the next element of the collection.
            </summary>
            <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbHashSet`1.Enumerator.Current">
            <summary>
            The iterator current Key object
            </summary>
        </member>
        <member name="T:VelocityDb.RequestedPlacementPageNumberNotValidException">
            <summary>
            Exception thrown when a requested placement Page number is invalid.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeMap`2">
            <summary>
            Represents a collection of keys that is maintained in sorted order. Each key has an associated value. A persistent BTree references its contained objects by Oid instead of direct object references.
            This way, we will only open the referenced objects on demand which reduces memory usage and initial BTree load time. Exceptions are ValueType keys and values.
            </summary>
            <typeparam name="Key">The key type of objects in this BTreeMap</typeparam>  
            <typeparam name="Value">The value type of objects in this BTreeMap</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMap`2.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0},VelocityDb.Session.SessionBase,System.UInt16,System.UInt16,System.Boolean)">
            <summary>
            Creates a new BTreeSet
            </summary>
            <param name="maxEntriesPerNode">Determines internal array and Page sizes</param>
            <param name="comparer">An object comparer. Try using CompareByField</param>
            <param name="session">The session managing this object</param>
            <param name="comparisonArraySize">Determine how many bytes to reserve for each object within a BTree node as a way to avoid actual object compares.</param>
            <param name="comparisonArrayIsCompleteKey">If the comparison array bytes are all that needs to be compared to determine ordering then set this to true; otherwise false</param>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMap`2.Clear">
            <summary>
            Removes all elements from the set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMap`2.Unpersist(VelocityDb.Session.SessionBase,System.Boolean)">
            <summary>
            Removes an object from the persistent store and makes the object a transient object. Also makes all other objects part of the BTree transient (but not the Key objects)
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeMap`2.Comparer">
            <summary>
            Gets the VelocityDbComparer object that is used to compare Key objects.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.SortedSetAny`1">
            <summary>
            A sorted set of objects of any Type (not just subclasses of <see cref="T:VelocityDb.OptimizedPersistable"/>
            </summary>
            <typeparam name="Key">The type of lement for this list.</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetAny`1.#ctor">
            <summary>
            Constructs the set
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetAny`1.#ctor(System.Int32)">
            <summary>
            Constructs a set with a given initial capacity
            </summary>
            <param name="capacity"></param>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetAny`1.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0})">
            <summary>
            Constructs a set with a given object comparator
            </summary>
            <param name="comparer">A comparator of Key objects</param>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetAny`1.Comparer">
            <summary>
            Gets the set comparator
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetAny`1.Keys">
            <summary>
            Gets the internal Key list of the set
            </summary>
        </member>
        <member name="T:VelocityDb.Session.ServerClientSession">
            <summary>
            Use this session class when <see cref="T:VelocityDb.Page"/> level locking is required and/or not all <see cref="T:VelocityDb.Database"/>s are local and not reachable by UNC paths.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.#ctor(System.String,System.String,System.Boolean,System.Int32,System.Boolean)">
            <summary>
            Creates a new session.
            </summary>
            <param name="systemDir">The startup location directory path (do not use UNC path). Use path as it is on the host owning the directory</param>
            <param name="systemHost">Hostname of the host owning the systemDir</param>
            <param name="readOnly">Is the session going to be read only (no updates)?</param>
            <param name="waitForLockMilliseconds">The desired maximum lock wait time</param>
            <param name="optimisticLocking">Use optimistic locking. With optimistic locking, readers are always permitted and multiple updaters are permitted to update the same Databases/Pages but only the the first transaction to commit or flush an updated Database/Page will be successful in making the commited chane. Other updaters will get an OptimisticLockingException if they try to commit/flush updates to the same Pages/Database.
            See http://en.wikipedia.org/wiki/Optimistic_concurrency_control for further explnation of optimistic locking. If optimistic locking is not enabled then pessimistic locking is used. See: http://en.wikipedia.org/wiki/Concurrency_control
            </param>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.Abort">
            <summary>
            Aborts a transcation, it undoes all persistent changes made within the transaction
            </summary>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.BeginRead(System.Boolean)">
            <summary>
            Start a read only transaction
            </summary>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.BeginUpdate(System.Boolean)">
            <summary>
            Starts a transaction that may be creating new persistent data and/or updating persistent data
            </summary>
            <param name="doRecoveryCheck"></param>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.ClearServerCache">
            <summary>
            Used as an aid when debugging server data, internal use, avoid using for now.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.Close">
            <summary>
            Aborts any active transaction and closes any master NetworkStream
            </summary>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.Commit(System.Boolean)">
            <summary>
            Commits a transaction. Releases all locks and makes all persistent changes permanent.
            </summary>
            <param name="doRecoveryCheck"></param>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.DeleteLocation(VelocityDb.DatabaseLocation)">
            <summary>
            Deletes a DatabaseLocation, location must first mot have any Databases in it
            </summary>
            <param name="location">The DatabaseLocation to delete</param>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.FlushUpdates">
            <summary>
            Send all updated pages to the server(s) managing those pages, freeing up memory in client.
            </summary>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.FlushUpdatesServers">
            <summary>
            Make servers Write all updated data. This may free up some memory on the servers. Only effects sessions using VelocityDbServer(s)
            </summary>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.OpenLocationDatabases(VelocityDb.DatabaseLocation,System.Boolean)">
            <summary>
            Opens all the databases in a given location
            </summary>
            <param name="location">The location for which to open databases</param>
            <param name="update">Shall each database be opened for update?</param>
            <returns>A list of opened databases</returns>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.OpenAllDatabases(System.Boolean)">
            <summary>
            Open all databases
            </summary>
            <param name="update">Open for update?</param>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.InUseNumberOfPages(VelocityDb.Database)">
            <summary>
            Gets the number of pages currently in use by a Database
            </summary>
            <param name="db">The Database to request info about</param>
            <returns>The number of pages currently in use</returns>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.NewDatabase(System.UInt32,System.UInt32,System.String)">
            <summary>
            Create a new Database with a given database number
            </summary>
            <param name="dbNum">Database number of the database to create</param>
            <returns>The newly created Database or throws and exception if the Database already exist</returns>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.NewLocation(VelocityDb.DatabaseLocation)">
            <summary>
            Creates a new DatabaseLocation or updates existing ones
            </summary>
            <param name="location">The input location</param>
            <returns>The new DatabaseLocation or an existing one</returns>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.OpenDatabase(System.UInt32,System.Boolean,System.Boolean)">
            <summary>
            Opens a Database
            </summary>
            <param name="dbNum">The Database number of the database to open</param>
            <param name="update">Open the Database for update?</param>
            <param name="signalError">Signal errors if errors found when opening the Database?</param>
            <returns>The opened Database</returns>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.RestoreFrom(VelocityDb.DatabaseLocation,System.DateTime)">
            <summary>
            Restores Databases and pages from a backup DatabaseLocation. Existing data will be merged with the restored data unless existing Databases to restore are deleted before the restore.
            </summary>
            <param name="backupLocation">The location to restore from</param>
            <param name="upToTime">Restore location up to a given DateTime. Data backed up after this time will not be restored.</param>
        </member>
        <member name="M:VelocityDb.Session.ServerClientSession.UpdateDatabase(VelocityDb.Database)">
            <summary>
            Request an update lock on a database
            </summary>
            <param name="db">The database to update</param>
            <returns>true if Database was updated, otherwise throws an exception</returns>
        </member>
        <member name="M:VelocityDb.FreeSpace.ToString">
             <summary>
             Displays class name plus object id
             </summary>
            <returns>
             A <see cref="T:System.String"/> containing class name, offset and size
            </returns>
        </member>
        <member name="T:VelocityDb.DatabaseLocations">
            <summary>
            Maintains collections of all existing <see cref="T:VelocityDb.DatabaseLocation"/>s.
            </summary>
        </member>
        <member name="M:VelocityDb.DatabaseLocations.Default">
            <summary>
            Returns the <see cref="T:VelocityDb.DatabaseLocation"/> of the startup/system Databases.
            </summary>
        </member>
        <member name="M:VelocityDb.DatabaseLocations.LocationForDb(System.UInt32)">
            <summary>
            Returns the <see cref="T:VelocityDb.DatabaseLocation"/> for which a Database belongs to.
            <param name="dbNum">The Database number to lookup location for</param>
            <returns>The looked up <see cref="T:VelocityDb.DatabaseLocation"/></returns>
            </summary>
        </member>
        <member name="M:VelocityDb.DatabaseLocations.LocateDb(System.UInt32)">
            <summary>
            Returns the <see cref="T:VelocityDb.DatabaseLocation"/> for which a Database exists in.
            <param name="dbNum">The Database number to lookup location for</param>
            <returns>The looked up <see cref="T:VelocityDb.DatabaseLocation"/> or null if the Database does not exist</returns>
            </summary>    
        </member>
        <member name="M:VelocityDb.DatabaseLocations.System#Collections#Generic#IEnumerable{VelocityDb#DatabaseLocation}#GetEnumerator">
            <summary>
            Enumerates all  <see cref="T:VelocityDb.DatabaseLocation"/>s
            </summary>
        </member>
        <member name="T:VelocityDb.DataCache">
            <summary>
            Object maintains a list of pages accessed by a session, pages are removed from the list when there is not enough memory available. This makes such pages eligble for garbage collection while in list pages are prevented from being garbage collected.
            </summary>
        </member>
        <member name="M:VelocityDb.DataCache.Clear">
            <summary>
            Clear cache of cached pages
            </summary>
        </member>
        <member name="P:VelocityDb.DataCache.UnauthorizedPerformanceCounter">
            <summary>
            Web server process isn't by default permitted to use PerformanceCounter
            See: http://blogs.msdn.com/b/bclteam/archive/2006/09/08/746900.aspx
            </summary>
        </member>
        <member name="P:VelocityDb.DataCache.PageCacheEnabled">
            <summary>
            Enable or disable page cache. In cases where pages are not going to be revistited, performance may be improved by disabling the page cache. In other cases leave the page cache enabled (the default)
            </summary>
        </member>
        <member name="P:VelocityDb.DataCache.MinimumAvailableMegaBytes">
            <summary>
            Decide the minimum amount of available memory before reducing page caching and flushing updated pages.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeMapOidShort`2">
            <summary>Represents a collection of objects that is maintained in sorted order. Collection and all objects must be within a single Database (since references uses OidShort persistently)
            </summary>
            <typeparam name="Key">The object type of objects in this BTree, currently must be a subclass of <see cref="T:VelocityDb.OptimizedPersistable"/></typeparam>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapOidShort`2.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0},VelocityDb.Session.SessionBase,System.UInt16,System.UInt16,System.Boolean)">
            <summary>
            Creates a new BTreeMapOidShort
            </summary>
            <param name="maxEntriesPerNode">Determines internal array and Page sizes</param>
            <param name="comparer">An object comparer. Try using CompareByField</param>
            <param name="session">The session managing this object</param>
            <param name="comparisonArraySize">Determine how many bytes to reserve for each object within a BTree node as a way to avoid actual object compares.</param>
            <param name="comparisonArrayIsCompleteKey">If the comparison array bytes are all that needs to be compared to determine ordering then set this to true; otherwise false</param>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapOidShort`2.Clear">
            <summary>
            Removes all elements from the set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapOidShort`2.Unpersist(VelocityDb.Session.SessionBase,System.Boolean)">
            <summary>
            Removes an object from the persistent store and makes the object a transient object. Also makes all other objects part of the BTree transient (but not the Key objects)
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeMapOidShort`2.Comparer">
            <summary>
            Gets the VelocityDbComparer object that is used to compare Key objects.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeMapIterator`2">
            <summary>
            Iterates all the elements of a BTreeSet
            </summary>
            <typeparam name="Key">The type of the elements contained in the BTreeSet</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.Current">
            <summary>
            The iterator current Key object
            </summary>
            <returns>The Ket at the current iterator position</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.CurrentKey">
            <summary>
            Returns the Key at the current iterator position
            </summary>
            <returns>Key at current position</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.CurrentValue">
            <summary>
            Returns the Value at the current iterator position
            </summary>
            <returns>Value at current position</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.GoTo(`0)">
            <summary>
            Positions iterator at Key object or where Key would be inserted if added to the set.
            </summary>
            <param name="key">The object to position iterator near</param>
            <returns>true if an exact match was found; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.GoTo(`0,System.Byte[])">
            <summary>
            Positions iterator at Key object or where Key would be inserted if added to the set. This function is normally only used internally by VelocityDb.
            </summary>
            <param name="key">The object to position iterator near</param>
            <param name="comparisonArray">Contains bytes used for comparing with other arrays for NodeKeys within the set</param>
            <returns>true if an exact match was found; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.GoToLast">
            <summary>
            Positions iterator at the last object in the set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.MoveNext">
            <summary>
            Advances the enumerator to the next element of the collection.
            </summary>
            <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.MovePrevious">
            <summary>
            Advances the enumerator to the previous element of the map.
            </summary>
            <returns>true if the enumerator was successfully advanced to the previous element; false if the enumerator has reached the position prior to the start of the map.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.Next">
            <summary>
            Positions the iterator at the next KeyValuePair in the map. Only use this one with nullable Key type.
            </summary>
            <returns>The next Key or null if we iterated past the the end of the set.</returns>
        </member>
        <member name="M:VelocityDb.Collection.BTree.BTreeMapIterator`2.Previous">
            <summary>
            Positions the iterator at the previous Key in the set
            </summary>
            <returns>The previous Key or null if we iterated to a postion before the first Key in the set.</returns>
        </member>
        <member name="T:VelocityDb.PageDeadLockException">
            <summary>
            Exception thrown when a <see cref="T:VelocityDb.Page"/> level lock failed due to a deadlock with another transaction
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Spatial.RTree">
            <summary>
            RTree implementation inspired by description on Wikipedia http://en.wikipedia.org/wiki/R-tree
            </summary>
        </member>
        <member name="F:VelocityDb.Collection.Spatial.RTree.defaultMinNodeEntries">
            <summary>
            default minimum number of reactangles in a leaf RTree node
            </summary>
        </member>
        <member name="F:VelocityDb.Collection.Spatial.RTree.defaultMaxNodeEntries">
            <summary>
            default maximum number of reactangles in a leaf RTree node
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.#ctor(System.Int32,System.Int32)">
            <summary>
            RTree implementaion customized for optimal performance with VelocityDB. Follows outline as described in http://en.wikipedia.org/wiki/R-tree
            </summary>
            <param name="minNodeEntries">Minimum number of entries in a node. The default value is 80.</param>
            <param name="maxNodeEntries">Maximum number of entries in a node. The default value is 200.</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.Add(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Start at the Root Node
            Select the child that needs the least enlargement in order to fit the new geometry.
            Repeat until at a leaf node.
            If leaf node has available space insert Else split the entry into two nodes
            Update parent nodes
            Update the entry that pointed to the node with a new minimum bounding rectangle
            Add a new entry for the second new node
            If there is no space in the parent node, split and repeat
            </summary>
            <param name="r">the rectangle being added</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.AddInternal(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Adds a new entry at a specified level in the tree
            </summary>
            <param name="r">the rectangle added</param>
            <param name="level">the level of the tree to add it at</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.AddInternal(VelocityDb.Collection.Spatial.Rectangle,System.Int32,VelocityDb.Collection.Spatial.NodeBase)">
            <summary>
            Adds a new entry at a specified level in the tree
            </summary>
            <param name="r">the rectangle added</param>
            <param name="level">the level of the tree to add it at</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.Remove(VelocityDb.Collection.Spatial.Rectangle)">
            <summary>
            Removes a rectangle from the Rtree
            </summary>
            <param name="r">the rectangle to delete</param>
            <returns>true if rectangle deleted otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.Nearest(VelocityDb.Collection.Spatial.Point,System.Double)">
            <summary>
            Finds the nearest rectangles to the passed point. If multiple rectangles are equally near, they will all be returned.
            </summary>
            <param name="p">the point we are looking for</param>
            <param name="furthestDistance">The furthest distance away from the rectangle to search. Rectangles further than this will not be found.</param>
            <returns>a PriorityQue containing the found recatngles and their priorities (distances from point)</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.NearestN(VelocityDb.Collection.Spatial.Point,System.UInt32,System.Double)">
            <summary>
            Finds the N nearest rectangles to the passed point. If multiple rectangles are equally near, they will all (but total limited to N) be returned.
            </summary>
            <param name="p">the point we are looking for</param>
            <param name="count">max number of rectangles to look for</param>
            <param name="furthestDistance">The furthest distance away from the rectangle to search. Rectangles further than this will not be found.</param>
            <returns>a PriorityQue containing the found recatngles and their priorities (distances from point)</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.Intersects(VelocityDb.Collection.Spatial.Rectangle,System.Func{VelocityDb.Collection.Spatial.Rectangle,System.Boolean})">
            <summary>
            Finds all rectangles that intersect the passed rectangle.
            </summary>
            <param name="r">the rectangle we are intersecting with</param>
            <param name="v">if returns true, search containues else search is ended</param>
            <returns>true if at least one intersection was found and v returns true</returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.Contains(VelocityDb.Collection.Spatial.Rectangle,System.Func{VelocityDb.Collection.Spatial.Rectangle,System.Boolean})">
            <summary>
            Finds all rectangles contained by the passed rectangle
            </summary>
            <param name="r">The rectangle for which this method finds contained rectangles.</param>
            <param name="v">if return true, continue seach</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.intersects(VelocityDb.Collection.Spatial.Rectangle,System.Func{VelocityDb.Collection.Spatial.Rectangle,System.Boolean},VelocityDb.Collection.Spatial.NodeBase)">
            <summary>
            Recursively searches the tree for all intersecting entries.
            Calls the passed function when a matching entry is found. Return if the passed function returns false;
            </summary>
            <param name="r"></param>
            <param name="v"></param>
            <param name="n"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.chooseNode(VelocityDb.Collection.Spatial.Rectangle,System.Int32)">
            <summary>
            Used by add(). Chooses a leaf to add the rectangle to.
            </summary>
            <param name="minX"></param>
            <param name="minY"></param>
            <param name="maxX"></param>
            <param name="maxY"></param>
            <param name="level"></param>
            <returns></returns> 
        </member>
        <member name="M:VelocityDb.Collection.Spatial.RTree.checkConsistency">
            <summary>
            Check the consistency of the tree.
            </summary>
            <returns>false if an inconsistency is detected, true otherwise</returns> 
        </member>
        <!-- Badly formed XML comment ignored for member "P:VelocityDb.Collection.Spatial.RTree.Count" -->
        <member name="P:VelocityDb.Collection.Spatial.RTree.Bounds">
            <summary>
            Gets the bounds of all the entries in the spatial index, or null if there are no entries.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Comparer.HashCodeComparer`1">
            <summary>
            When the type of object being compared is a simple type like a string and you don't care about the sort order, then this comparator is what you want to use.
            It is similar to using a hash based collection but with less overhead (more compact)
            This kind of comparator especially shines when you create the BTreeSet/BTreeMap using a comparisonByteArray size of 4
            </summary>
            <typeparam name="T">The type of object to compare which must implement <see cref="T:System.IComparable"/></typeparam>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.HashCodeComparer`1.GetHashCode32(System.String)">
            <summary> 
            Similar to String.GetHashCode but returns the same as the x86 version of String.GetHashCode for x64 and x86 frameworks. 
            </summary> 
            <param name="s"></param> 
            <returns></returns> 
        </member>
        <member name="T:VelocityDb.TypeInfo.DataMember">
            <summary>
            Info about a data Field of a persistent object
            </summary>
        </member>
        <member name="M:VelocityDb.TypeInfo.DataMember.GetMemberValue(System.Object)">
            <summary>
            Gets the value of a member within a specified object
            </summary>
            <param name="obj">The object containing the field</param>
            <returns>The value of the field</returns>
        </member>
        <member name="M:VelocityDb.TypeInfo.DataMember.SetMemberValue(System.Object,System.Object)">
            <summary>
            
            </summary>
            <param name="obj"></param>
            <param name="value"></param>
        </member>
        <member name="M:VelocityDb.TypeInfo.DataMember.InitializeAfterRecreate(VelocityDb.Session.SessionBase)">
            <summary>
            Sets up some transient fields
            </summary>
            <param name="session">The session managing this object.</param>
        </member>
        <member name="M:VelocityDb.TypeInfo.DataMember.ToString">
            <summary>
            Override to provide more internal info in browser
            </summary>
            <returns> "DataMember " + fieldName + " " + Oid.AsString(id)</returns>
        </member>
        <member name="P:VelocityDb.TypeInfo.DataMember.Field">
            <summary>
            The managed field
            </summary>
        </member>
        <member name="P:VelocityDb.TypeInfo.DataMember.HasId">
            <summary>
            Does this field have an Oid?
            </summary>
        </member>
        <member name="P:VelocityDb.TypeInfo.DataMember.WeakReference">
            <summary>
            Is this field a VelocityDb.WeakReference
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.VelocityDbList`1">
            <summary>
            A list with an Oid containing objects ordered by index.
            </summary>
            <typeparam name="T">The type of objects contained in this kind of list</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.#ctor">
            <summary>
            Contrsucts an empty list
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.#ctor(System.Int32)">
            <summary>
            Constructs a new list with a presized capacity
            </summary>
            <param name="capacity"></param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.Add(`0)">
            <summary>
            Adds an item to a list
            </summary>
            <param name="item">item being added</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.Add(`0,System.Int32)">
            <summary>
            Adds an item to a list and if array needs to grow to hold new item, it grows to a given max size.
            </summary>
            <param name="item">item being added</param>
            <param name="maxArraySize">the maximum size to use as internal array size</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.Clear">
            <summary>
            Removes all items from the list and frees the array
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.Contains(`0)">
            <summary>
            Checks if an item is contained in the list
            </summary>
            <param name="item">the item to look for</param>
            <returns>true if item was found; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies list items to an array
            </summary>
            <param name="array">the array to copy to</param>
            <param name="arrayIndex">start array index of copy</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.GetEnumerator">
            <summary>
            Enumerates items in a list
            </summary>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.IndexOf(`0)">
            <summary>
            Finds the first index of an item
            </summary>
            <param name="item">item to look for</param>
            <returns>-1 if item was not found or first index of item</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an item at a specified index
            </summary>
            <param name="index">insert at this index</param>
            <param name="item">the item being inserted</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.Insert(System.Int32,`0,System.Int32)">
            <summary>
            Inserts an item at a specified index
            </summary>
            <param name="index">insert at this index</param>
            <param name="item">the item being inserted</param>
            <param name="maxArraySize">Restrict array growth to this maximum size (if array needs to grow)</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.Remove(`0)">
            <summary>
            Remove an item
            </summary>
            <param name="item">the item to remove</param>
            <returns>true if item was found and removed; otherwise false</returns>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.RemoveAt(System.Int32)">
            <summary>
            Removes an item at a specified index
            </summary>
            <param name="index">the index of the item to remove</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.RemoveRange(System.Int32,System.Int32)">
            <summary>
            Removes a range of items
            </summary>
            <param name="index">start index</param>
            <param name="howMany">how many to remove</param>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbList`1.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies list to an array
            </summary>
            <param name="array">the array to copy to</param>
            <param name="arrayIndex">start index in array for copy</param>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbList`1.Count">
            <summary>
            Number of items in list
            </summary>  
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbList`1.Item(System.Int32)">
            <summary>
            Gets or sets an item at a certain index
            </summary>
            <param name="index">the item index</param>
            <returns>the item at the specified index</returns>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbList`1.IsFixedSize">
            <summary>
            Always false
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbList`1.IsReadOnly">
            <summary>
            Always false
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbList`1.SyncRoot">
            <summary>
            Used for thread safety
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.VelocityDbList`1.IsSynchronized">
            <summary>
            Always false
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Comparer.CompareByField`1">
            <summary>
            Use this predefined comparator whenever the sorting can be defined by specifying one or more fields of the sorted Key type.
            </summary>
            <typeparam name="Key">The type of object being compared (containing field(s) to compare)</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.CompareByField`1.#ctor(System.String,VelocityDb.Session.SessionBase,System.Boolean,System.Boolean)">
            <summary>
            Compares objects by comparing one or more data fields of type Key
            </summary>
            <param name="field">Primary field to use for comparison.</param>
            <param name="session">The managing session</param>
            <param name="doIdCompareIfEqual">Optionally compare Oid's when fields are equal between compared objects</param>
            <param name="sortStringsByHashCode">Sort string fields by hash code first then secondly as normal string compare</param>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.CompareByField`1.AddFieldToCompare(System.String)">
            <summary>
            Add an additional field to compare when prior fields all are equal
            </summary>
            <param name="field">Field name of field to compare</param>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.CompareByField`1.#ctor(VelocityDb.Session.SessionBase)">
            <summary> 
            <param name="session">The session managing this object.</param>
            This special constructor is provided so that VelocityDb can instantiate the object after reading it from disk.  
            This is also the place to initialize transient variables of the object.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.CompareByField`1.Compare(`0,`0)">
            <summary>
            Compares field(s) of Key a with field(s) of Key b
            </summary>
            <param name="a">the first object</param>
            <param name="b">the second object</param>
            <returns>-1 if a less than b, 0 if equal and 1 if a greater than b</returns>
        </member>
        <member name="M:VelocityDb.Collection.Comparer.CompareByField`1.SetComparisonArrayFromObject(`0,System.Byte[],System.Boolean)">
            <summary>
            Sets a byte array equivalent to the field values to compare. Using this bypasses object compares, instead the byte arrays are compared byte by byte intil a diff is found. If a byte diff isn't found then object compares may happen.
            Field types currently supported: byte, bool, Char, string, Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, DateTime, TimeSpan
            </summary>
            <param name="key">A key from which to extract a comparison byte array based on field(s) to compare</param>
            <param name="comparisonArray">The array to set bytes of</param>
            <param name="oidShort">If oidShort is true then only the page and slot numbers need to be compared if the comparator bytes includes any Oid bytes</param>
        </member>
        <member name="P:VelocityDb.Collection.Comparer.CompareByField`1.AddOidCompare">
            <summary>
            Is the object Oid going to be compared when all the compared fields are equal?
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Comparer.CompareByField`1.OidPartOfComparisonBytes">
            <summary>
            Is the Oid (or OidShort) included in the comparison array bytes?
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.BTree.BTreeByteArray">
            <summary>
            Wrapper object for a byte[] of data for comparing objects within a BTreeSet. Wrapper is used so that this data can be placed on a seperate <see cref="T:VelocityDb.Page"/>
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeByteArray.Cache">
            <summary>
            We do want to cache this kind of object since they are likly to be frequently used.
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeByteArray.ObjectsPerPage">
            <summary>
            Place this type of of object on its own page
            </summary>
            <returns>
            The default maximum number of objects per page
            </returns>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeByteArray.PagesPerDatabase">
            <summary>
            Use the max limit for this type
            </summary>
            <returns>The choosen limit</returns>
        </member>
        <member name="P:VelocityDb.Collection.BTree.BTreeByteArray.AllowOtherTypesOnSamePage">
            <summary>
            We only want this type of object on any page containing this type so don't use pages with other type of objects when placing an object of this type
            </summary>
        </member>
        <member name="T:VelocityDb.WeakReference`1">
            <summary>When a persistent object is opened, all its referenced objects are opened as well. In order to limit the number of opened objects, you need to use this class.
            A reference from an instance of this class will not cause the referenced object to be opened. It will be opened when you ask for it.
            <typeparam name="T">The <see cref="T:System.Type"/> of the weak referenced object, must be <see cref="T:VelocityDb.OptimizedPersistable"/></typeparam>
            </summary>
        </member>
        <member name="M:VelocityDb.WeakReference`1.#ctor(System.UInt64)">
            <summary>
            Creates a weak reference to some OptimizedPersistable object
            <param name="oid">Can be created using Oid.Encode(databaseNumber, pageNumber, pageNumber)</param>
            </summary>
        </member>
        <member name="M:VelocityDb.WeakReference`1.#ctor(VelocityDb.Oid)">
            <summary>
            Creates a weak reference to some OptimizedPersistable object
            <param name="oid">Can be created using Oid.Encode(databaseNumber, pageNumber, pageNumber)</param>
            </summary>
        </member>
        <member name="M:VelocityDb.WeakReference`1.#ctor(`0)">
            <summary>
            Creates a weak reference to some OptimizedPersistable object. This object must be persisted before adding as a weak reference.
            </summary>
        </member>
        <member name="M:VelocityDb.WeakReference`1.GetTarget(System.Boolean,VelocityDb.Session.SessionBase)">
            <summary>
            Gets the persistent object referenced by the weak reference
            </summary>
            <param name="update">Open the persistent object for update?</param>
            <param name="session">The session managing the persistent object</param>
            <returns>The object referenced by this weak reference</returns>
        </member>
        <member name="M:VelocityDb.WeakReference`1.ToString">
            <summary>Append the Oid of the referenced object to the string.</summary>
        </member>
        <member name="T:VelocityDb.NullObjectException">
            <summary>
            Exception thrown when an object unexpectedly is null.
            </summary>
        </member>
        <member name="T:VelocityDb.TypeInfo.TypeVersion">
            <summary>
            Contains info about a version of a <see cref="T:VelocityDb.TypeInfo.VelocityDbType"/>. The info is used when reading/writing an object of the 
            </summary>
        </member>
        <member name="T:VelocityDb.ServerRequests.NamespaceDoc">
            <summary>    
            The <c>VelocityDb.ServerRequests</c> namespace contains classes for interfacing with the VelocityDbServer
            </summary>      
        </member>
        <member name="T:VelocityDb.UpdateLockFailedException">
            <summary>
            Exception thrown when an update lock failed.
            </summary>
        </member>
        <member name="T:VelocityDb.PageReadLockException">
            <summary>
            Exception thrown when failing to get a <see cref="T:VelocityDb.Page"/> level read lock.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.VelocityDbListOidShort`1">
            <summary>
            List of objects where list and all elements of a list are contained within a single <see cref="T:VelocityDb.Database"/>
            </summary>
            <typeparam name="T">The element type of a list.</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.VelocityDbListOidShort`1.#ctor(System.Int32)">
            <summary>
            Creates a new list with a presized capacity
            </summary>
            <param name="capacity"></param>
        </member>
        <member name="T:VelocityDb.BlockingQueue`1">
            <summary>
            Implements a thread safe queue that blocks if attempting to read when 
            empty or write when full.
            </summary>
        </member>
        <member name="M:VelocityDb.BlockingQueue`1.#ctor">
            <summary>
            Constructs a new queue with a capacity of int.MaxValue.
            </summary>
        </member>
        <member name="M:VelocityDb.BlockingQueue`1.#ctor(System.Int32)">
            <summary>
            Constructs a new queue with a specific capacity.
            </summary>
        </member>
        <member name="M:VelocityDb.BlockingQueue`1.Enqueue(`0)">
            <summary>
            Writes an item onto the queue. If the queue has reached capacity, this
            operation will block.
            </summary>
        </member>
        <member name="M:VelocityDb.BlockingQueue`1.Dequeue">
            <summary>
            Reads an item off the queue. If there are no items on the queue, this
            operation will block.
            </summary>
        </member>
        <member name="P:VelocityDb.BlockingQueue`1.IsEmpty">
            <summary>
            Check if any activity is ongoing
            </summary>
        </member>
        <member name="T:VelocityDb.Session.NamespaceDoc">
            <summary>    
            The <c>VelocityDb.Session</c> namespace contains session classes for interfacing with VelocityDb
            </summary>      
        </member>
        <member name="T:VelocityDb.DatabaseLocation">
            <summary>
            Represents a host and a directory in which a range of databases are stored. The range is a database number range.
            </summary>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.#ctor(System.String,System.UInt32,System.UInt32,VelocityDb.Session.SessionBase,System.Boolean,VelocityDb.PageInfo.encryptionKind,System.Boolean,VelocityDb.DatabaseLocation)">
            <summary>
            Creates a transient Database location. A transient DatabaseLocation is made persistent by <see cref="M:VelocityDb.Session.SessionBase.NewLocation(VelocityDb.DatabaseLocation)"/>
            </summary>
            <param name="hostAndDir"></param>
            <param name="dbStartNum"></param>
            <param name="dbEndNum"></param>
            <param name="session"></param>
            <param name="compressPages"></param>
            <param name="pageEncryption"></param>
            <param name="isAbackupLocation"></param>
            <param name="backupOfOrForLocation"></param>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.#ctor(System.String,System.String,System.UInt32,System.UInt32,VelocityDb.Session.SessionBase,System.Boolean,VelocityDb.PageInfo.encryptionKind,System.Boolean,VelocityDb.DatabaseLocation)">
            <summary>
            Creates a transient Database location. A transient DatabaseLocation is made persistent by <see cref="M:VelocityDb.Session.SessionBase.NewLocation(VelocityDb.DatabaseLocation)"/>
            </summary>
            <param name="inHost">Hostname of the computer with the DatabaseLocation directory.</param>
            <param name="dir">The full path of the directory</param>
            <param name="dbStartNum">The first Database Id number for this location</param>
            <param name="dbEndNum">The last Database Id number for this location.</param>
            <param name="session">The active session used for creating the location.</param>
            <param name="compressPages">Compress Database pages in this location?</param>
            <param name="pageEncryption">Specify what kind of Page encryption to use (if any)</param>
            <param name="isAbackupLocation">Is this location a backup location for another location?</param>
            <param name="backupOfOrForLocation">The other location being backed up or the location containg the backups</param>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.ContainsDatabase(System.UInt32)">
             <summary>
             Check if this location contains a particular <see cref="T:VelocityDb.Database"/>
             </summary>
             <param name="dbNum">The database number to look for</param>
            <returns>
            <c>true</c> if the location contains this database; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.ContainsNewDatabase(System.UInt32)">
             <summary>
             Check if this location contains a particular new database (not yet committed) <see cref="T:VelocityDb.Database"/>
             </summary>
             <param name="dbNum">The database number to look for</param>
            <returns>
            <c>true</c> if the location contains this new uncommitted database; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.DatabasePath(System.UInt32)">
             <summary>
             Get the full path to a <see cref="T:VelocityDb.Database"/>
             </summary>
             <param name="dbNum">The database number to look for</param>
            <returns>
             A <see cref="T:System.String"/> containing the full <see cref="T:VelocityDb.Database"/> path.
            </returns>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.InitializeAfterRead(VelocityDb.Session.SessionBase)">
            <summary>
            Sets the desKey field for desEncrypted locations by reading .des file in Environment.SpecialFolder.MyDocuments
            </summary>
            <param name="session">The active session</param>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.System#Collections#Generic#IEnumerable{VelocityDb#Database}#GetEnumerator">
            <summary>
            Enumerates all Databases of this location
            </summary>
        </member>
        <member name="M:VelocityDb.DatabaseLocation.CompareTo(System.Object)">
            <summary>
            The defualt compare of two DatabaseLocation is by host name and directory
            </summary>
            <param name="obj">The location to compare with</param>
            <returns>-1 if this location is less than the other, 0 if equal, otherwise 1</returns>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.BackupOfOrForLocation">
            <summary>Gets a linked DatabaseLocation that is either backup of location or is the location being backup up which is decided by <see cref="P:VelocityDb.DatabaseLocation.IsBackupLocation"/></summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.CompressPages">
             <summary>
             Gets page compression info
             </summary>
            <returns>
            <c>true</c> if the databases in this location uses compression; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.DesKey">
            <summary>
            Gets the Des encryption key from a .des file in user Documents folder. (Environment.SpecialFolder.MyDocuments)
            </summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.DirectoryPath">
            <summary>
            Gets the full path to the directory hosting databases
            </summary>
            <value>The path as a string</value>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.EndDatabaseNumber">
            <summary>
            Gets or sets the last database number within the range of databases for this location
            </summary>
            <value>The last database number within the range of databases for this location</value>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.HostName">
            <summary>
            Gets the host name of this database location
            </summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.IsBackupLocation">
            <summary>
            Tells if this is a location used for backing up databases.
            </summary>
            <value>true if it is this location is used for backups; otherwise false.</value>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.PageEncryption">
            <summary>
            Gets the encyption kind attribute.
            </summary>
            <value>The <see cref="T:VelocityDb.PageInfo.encryptionKind"/> used in this location</value>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.StartDatabaseNumber">
            <summary>
            Gets and sets the start of the range of <see cref="T:VelocityDb.Database"/> numbers for this location.
            </summary>
            <value>The first database number within the range of databases for this location</value>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.Cache">
            <summary>
            We do want to cache this kind of object since they are likly to be frequently used.
            </summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.IsLocal">
             <summary>
             Gets info about this location beeing on the local host or not.
             </summary>
            <returns>
            <c>true</c> if the location is located on the local host; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.PlacementDatabaseNumber">
            <summary>
            Hint about where to persist DatabaseLocation
            </summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.RsaPrivateXmlKey">
            <summary>
            The rsaPrivateXmlKey data field is not persisted but can be set and read with this property
            </summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.RsaPublicXmlKey">
            <summary>
            The rsaPublicXmlKey data field is not persisted but can be set and read with this property
            </summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.RsaSignature">
            <summary>
            The rsaSignature data field is not persisted but can be set and read with this property
            </summary>
        </member>
        <member name="P:VelocityDb.DatabaseLocation.Session">
            <summary>
            Gets the session managing this object
            </summary>
        </member>
        <member name="T:VelocityDb.PageUpdateLockException">
            <summary>
            Exception thrown when a <see cref="T:VelocityDb.Page"/> level update lock failed.
            </summary>
        </member>
        <member name="T:VelocityDb.InternalErrorException">
            <summary>
            Exception thrown when an internal error was detected. This type of error is most likly due to a bug in VelocityDb.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.SortedSetOidShort`1">
            <summary>
            A sorted set where the set and all its elements are contained in a single <see cref="T:VelocityDb.Database"/>
            </summary>
            <typeparam name="Key">The type of elements in the set.</typeparam>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetOidShort`1.#ctor">
            <summary>
            Constructs an OidShort based sorted set.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetOidShort`1.#ctor(System.Int32)">
            <summary>
            Constructs an OidShort based sorted set with an initial presized capacity
            </summary>
            <param name="capacity"></param>
        </member>
        <member name="M:VelocityDb.Collection.SortedSetOidShort`1.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0})">
            <summary>
            Constructs a new sorted set with a given object comparator.
            </summary>
            <param name="comparer"></param>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetOidShort`1.Comparer">
            <summary>
            Gets the object comparator
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedSetOidShort`1.Keys">
            <summary>
            Gets the internal sorted list of objects contained in the set.
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Spatial.PriorityQueue`2">
            <summary>
            Priority Queue that stores values and priorities.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.PriorityQueue`2.#ctor(System.Boolean,System.Int32)">
            <summary>
            Creates a PriorityQue
            </summary>
            <param name="sortOrderAscending">order ascending if true otherwise order descending</param>
            <param name="initialCapacity">improve performance by setting expected size initially</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.PriorityQueue`2.sortsEarlierThan(`0,`0)">
            <summary>
            Determine if p1 should be ordered before p2 or vice versa
            </summary>
            <param name="p1"></param>
            <param name="p2"></param>
            <returns>true if p1 has an earlier sort order than p2</returns> 
        </member>
        <member name="M:VelocityDb.Collection.Spatial.PriorityQueue`2.Insert(`1,`0)">
            <summary>
            Insert a value, append it to the arrays, then reheapify by promoting it to the correct place.
            </summary>
            <param name="value">the value inserted</param>
            <param name="priority">the priority of the value inserted</param>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.PriorityQueue`2.Clear">
            <summary>
            Removes all values and priorities from the que
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.PriorityQueue`2.Pop">
            <summary>
            Get the value with the lowest priority creates a "hole" at the root of the tree. The algorithm swaps the hole with the appropriate child, until 
            the last entry will fit correctly into the hole (ie is lower priority than its children)
            </summary>
            <returns>the Value with the lowest priority</returns>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.PriorityQueue`2.Count">
            <summary>
            The number of values and priorities that are in the que
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.PriorityQueue`2.ValuePeek">
            <summary>
            Peek at the next value
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.PriorityQueue`2.PriorityPeek">
            <summary>
            Peek at the next Priority
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.Spatial.PriorityQueue`2.SortOrderAscending">
            <summary>
            Set or get sorting order, ascending if true or descending if false. 
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.Spatial.PriorityQueueRTree">
            <summary>
            RTree uses double for priorities and Rectangle as values
            </summary>
        </member>
        <member name="F:VelocityDb.Collection.Spatial.Point.x">
            <summary>
            The (x, y) coordinates of the point.
            </summary>
        </member>
        <member name="F:VelocityDb.Collection.Spatial.Point.y">
            <summary>
            The (x, y) coordinates of the point.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.Point.#ctor(System.Double,System.Double)">
            <summary>
            
            </summary>
            <param name="x">The x coordinate of the point</param>
            <param name="y">The y coordinate of the point</param>   
        </member>
        <member name="T:VelocityDb.UseOidShort">
            <summary>
            Indicates that every field or selected fields of a serializable class should be referenced using a OidShort instead of a full Oid.
            This means that the referenced object is located in the same database as the object containing the reference.
            A ShortOid uses less space and references are not tied to a certain database number.
            </summary>
        </member>
        <member name="M:VelocityDb.UseOidShort.#ctor">
            <summary>
            Creates the attribute indicating use of OidShort (page + page)
            </summary>
        </member>
        <member name="T:VelocityDb.ServerTcpClient">
            <summary>
            The main class for handling messages to VelocityDbServer
            </summary>
        </member>
        <member name="F:VelocityDb.ServerTcpClient.odbTcpPort">
            <summary>
            Tcp port number used by VelocityDbServer
            </summary>
        </member>
        <member name="F:VelocityDb.ServerTcpClient.shutdown">
            <summary>
            Controls when to shut down the server
            </summary>
        </member>
        <member name="F:VelocityDb.ServerTcpClient.odbServerLog">
            <summary>
            A log of errors and events happening in this VelocityDbServer
            </summary>
        </member>
        <member name="F:VelocityDb.ServerTcpClient.acceptDone">
            <summary>
            Sync of Accept calls
            </summary>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.#ctor">
            <summary>
            Constructs a server client which manages a remote or local ServerClientSession
            </summary>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.Abort">
            <summary>
            Aborts a client transaction
            </summary>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.AcceptTcpClient(System.IAsyncResult)">
            <summary>
            Accepts connections
            </summary>
            <param name="ar">Wrapps a TcpListener</param>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.DoWaitWork">
            <summary>
            Do some memory management work or disk flushes while client isn't busy
            </summary>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.connect">
            <summary>
            Handle a connect request
            </summary>
            <returns>A reply to a connect request</returns>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.connectSlave">
            <summary>
            Handles a ConnectSlaveRequest
            </summary>
            <returns>Reply to request</returns>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.processRequest(System.Byte[]@)">
            <summary>
            Dispatcher of all kinds of requests
            </summary>
            <param name="pageInfoBytes">Some requests return PageInfo bytes using this parameter</param>
            <returns>Reply to a request</returns>
        </member>
        <member name="M:VelocityDb.ServerTcpClient.RequestsLoop">
            <summary>
            The main loop processing requests from all clients
            </summary>
        </member>
        <member name="P:VelocityDb.ServerTcpClient.IsSlave">
            <summary>
            Is this Server client a slave (not master - not owning Db 1- 10) ?
            </summary>
        </member>
        <member name="T:VelocityDb.TypeInfo.VelocityDbType">
            <summary>
            Contains persistent info for a <see cref="T:System.Type"/>
            </summary>
        </member>
        <member name="T:VelocityDb.InvalidChangeOfDefaultLocationException">
            <summary>
            Exception thrown when trying to do an invalid change of the startup <see cref="T:VelocityDb.DatabaseLocation"/>.
            </summary>
        </member>
        <member name="M:VelocityDb.Collection.Spatial.NodeLeaf.condenseTree(VelocityDb.Collection.Spatial.RTree)">
            <summary>
            Used by delete(). Ensures that all nodes from the passed node up to the root have the minimum number of entries.
            Note that the parent and parentEntry stacks are expected to contain the nodeIds of all parents up to the root.
            </summary>
            <param name="l"></param>
        </member>
        <member name="T:VelocityDb.Placement">
            <summary>
            This class is used when deciding where to place a new object persistently. 
            That is we have a choice of database number, page number and page number. 
            There is other ways to control the placement including <see cref="P:VelocityDb.OptimizedPersistable.ObjectsPerPage"/>, 
            <see cref="P:VelocityDb.OptimizedPersistable.PagesPerDatabase"/>,
            and it is also possible to override <see cref="M:VelocityDb.OptimizedPersistable.Persist(VelocityDb.Placement,VelocityDb.Session.SessionBase,System.Boolean,System.Boolean)"/>.
            </summary>
        </member>
        <member name="F:VelocityDb.Placement.DefaultPlacementDatabaseNumber">
            <summary>
            If no other Database number is selected when persisting an object then this number is choosen.
            </summary>
        </member>
        <member name="F:VelocityDb.Placement.DefaultPlacementPage">
            <summary>
            If no other Page number is selected when persisting an object then this number is choosen.
            </summary>
        </member>
        <member name="M:VelocityDb.Placement.#ctor(System.UInt32,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.Boolean,System.Boolean,System.UInt32,System.Boolean,System.Boolean)">
            <summary>
            Creates a Placement used for choosing a place to persist objects
            </summary>
            <param name="db">Database number requested for placement</param>
            <param name="page">Page number requested for placement</param>
            <param name="slot">Slot number requested for placement</param>
            <param name="objectsPerPage">Limit the number of objects per page</param>
            <param name="pagesPerDatabase">Limit the number of pages per database</param>
            <param name="persistRefs">When persisting an object, shall references be persisted at the same time or later when flushing pages to disk</param>
            <param name="tryOtherDatabaseIfLockConflict">Is another Database acceptable</param>
            <param name="maxNumberOfDatabases">Maximum numner of databases to try for placement</param>
            <param name="allowOtherTypesOnSamePage">Is it OK to place object on a page which contains other types</param>
            <param name="flushFullPages">Is it OK toflush encounteted full pages?</param>
        </member>
        <member name="M:VelocityDb.Placement.#ctor(VelocityDb.Session.SessionBase,VelocityDb.IOptimizedPersistable,VelocityDb.IOptimizedPersistable,System.Boolean,System.UInt32,System.Boolean)">
            <summary>
            Creates a Placement used for choosing a place to persist objects
            </summary>
            <param name="session">The session being used</param>
            <param name="placementProviderObject">If persistent, placement uses thid objects db, page and slot as a atarting point for placements</param>
            <param name="objectToPlace">An object of the type we are going to persist with this placement object</param>
            <param name="persistRefs">Is the placement going to request that referenced objects also gets persisted?</param>
            <param name="maxNumberOfDatabases">Maximum numner of databases to try for placement</param>
            <param name="flushFullPages">Shall a detected full page be flushed if such page is found while persisting an object with this placement</param>
        </member>
        <member name="M:VelocityDb.Placement.IncrementTryDatabaseNumber">
            <summary>
            Incremnts the Database number used when placing (persisting) objects
            </summary>
            <returns>The Database number before incrementing</returns>
        </member>
        <member name="M:VelocityDb.Placement.IncrementTryPageNumber">
            <summary>
            Increments the tryPageNumber by 1
            </summary>
            <returns>The tryPageNumber before the increment</returns>
        </member>
        <member name="P:VelocityDb.Placement.TryDatabaseNumber">
            <summary>
            Gets the current Database number to try with first for object placement.
            </summary>
        </member>
        <member name="P:VelocityDb.Placement.EndDatabaseNumber">
            <summary>
            The last Database number acceptable for placement
            </summary>
        </member>
        <member name="P:VelocityDb.Placement.AllowOtherTypesOnSamePage">
            <summary>
            Gets/sets permission to create multiple types on the same page.
            </summary>
        </member>
        <member name="P:VelocityDb.Placement.TryPageNumber">
            <summary>
            Gets/sets the page number to try with first when persisting a new object.
            </summary>
        </member>
        <member name="P:VelocityDb.Placement.MaxPagesPerDatabase">
            <summary>
            Gets/sets the limit on the number of pages per database.
            </summary>
        </member>
        <member name="P:VelocityDb.Placement.MaxObjectsPerPage">
            <summary>
            Gets/Sets the limit on how many objects to create on a single page.
            </summary>
        </member>
        <member name="P:VelocityDb.Placement.TrySlotNumber">
            <summary>
            Gets/sets the page number to try next when persisting an object.
            </summary>
        </member>
        <member name="P:VelocityDb.Placement.StartDatabaseNumber">
            <summary>
            The first/original Database number used by this Placement
            </summary>
        </member>
        <member name="T:VelocityDb.RequestedPlacementDatabaseNumberNotValidException">
            <summary>
            Exception thrown when a requested placement Database number is invalid.
            </summary>
        </member>
        <member name="T:VelocityDb.PersistedObjectExcpectedException">
            <summary>
            Exception thrown when a persisted object wsa expected but was not.
            </summary>
        </member>
        <member name="T:VelocityDb.Page">
            <summary>Each <see cref="P:VelocityDb.Page.Database"/> consist of a number of variable sized pages. 
            A page can be compressed and may be encrypted and contains one or more objects. 
            Page compression is controlled by the <see cref="T:VelocityDb.DatabaseLocation"/> of the <see cref="P:VelocityDb.Page.Database"/> containing a page.
            Each page has a <see cref="P:VelocityDb.Page.PageInfo"/> that provides info about a page and can be updated to turn on/off compression and encryption for a specific page.
            </summary>
        </member>
        <member name="M:VelocityDb.Page.StringToByteArray(System.String)">
            <summary>
            Converts a string into an UTF8 encoded byte array
            </summary>
            <param name="str">a string to convert</param>
            <returns>a UTF8 encoding</returns>
        </member>
        <member name="M:VelocityDb.Page.CompareTo(System.Object)">
            <summary>
            Compares Pages by PageNumber
            </summary>
            <param name="obj">The Page to compare with</param>
            <returns>-1 if this PageNumber is less than obj.PageNumber, 0 if equal and 1 if greater than</returns>
        </member>
        <member name="M:VelocityDb.Page.GetEnumerator">
            <summary>
            Enumrates all objects on this Page
            </summary>
            <returns>Enumartion of all slots on this Page</returns>
        </member>
        <member name="P:VelocityDb.Page.PageInfo">
            <summary>
            Gets the PageInfo for this Page
            </summary>
        </member>
        <member name="P:VelocityDb.Page.IsUpdated">
            <summary>
            Is this Page updated?
            </summary>
        </member>
        <member name="P:VelocityDb.Page.Id">
            <summary>
            The Oid (encoded as UInt64) of this page
            </summary>
        </member>
        <member name="P:VelocityDb.Page.Oid">
            <summary>
            The Oid of this page
            </summary>
        </member>
        <member name="P:VelocityDb.Page.ShortId">
            <summary>
            The OidShort (encoded as UInt32) of this page
            </summary>   
        </member>
        <member name="P:VelocityDb.Page.OnlyStub">
            <summary>
            Is this Page fully read into memory or just the PageInfo?
            </summary>
        </member>
        <member name="P:VelocityDb.Page.Database">
            <summary>
            The <see cref="P:VelocityDb.Page.Database"/> of this Page.
            </summary>
        </member>
        <member name="P:VelocityDb.Page.PageNumber">
            <summary>
            The page number of this Page in the containing <see cref="P:VelocityDb.Page.Database"/>
            </summary>
        </member>
        <member name="T:VelocityDb.OidShort">
            <summary>
            The short object identifier containing a 16 bit page part and a 16 bit page part. This is used for short references within a single databases.
            </summary>
        </member>
        <member name="M:VelocityDb.OidShort.Encode(System.UInt16,System.UInt16)">
            <summary>
            Merges a page number and a page number into a single number
            </summary>
            <param name="page">A Page number</param>
            <param name="slot">A slot number</param>
            <returns>The combined Page and page number</returns>
        </member>
        <member name="M:VelocityDb.OidShort.#ctor(System.UInt64)">
            <summary>
            Constructs an OidShort given a 64bit number by using the 32 lower bits
            </summary>
            <param name="id">The full encoded Id from which to construct the OidShort</param>
        </member>
        <member name="M:VelocityDb.OidShort.#ctor(System.UInt32)">
            <summary>
            Constructs an OidShort given a 32bit number
            </summary>
            <param name="id">The page and slot encoded Id from which to construct the OidShort</param>
        </member>
        <member name="M:VelocityDb.OidShort.CompareTo(System.Object)">
            <summary>
            Compares two OidShort objects by id
            </summary>
            <param name="obj">The object to compare with</param>
            <returns>a negative number if less, 0 if equal or else a positive number</returns>
        </member>
        <member name="M:VelocityDb.OidShort.PageNumber(System.UInt32)">
            <summary>
            Extracts a Page number from a combined Page-Slot number
            </summary>
            <param name="id">Combined Page and page number</param>
            <returns>A Page number</returns>
        </member>
        <member name="M:VelocityDb.OidShort.SamePageAs(System.UInt32,System.UInt32)">
            <summary>
            Determines if two encoded OidShort have the same Page number
            </summary>
            <param name="id"></param>
            <param name="anId"></param>
            <returns></returns>
        </member>
        <member name="M:VelocityDb.OidShort.SlotNumber(System.UInt32)">
            <summary>
            Extracts a page number
            </summary>
            <param name="id">Combined Page and page number</param>
            <returns>A page number</returns>
        </member>
        <member name="M:VelocityDb.OidShort.SlotNumber(System.UInt32,System.UInt16)">
            <summary>
            Sets a page number
            </summary>
            <param name="oid">Combined Page and page number</param>
            <param name="slotNumber">Slot number to use</param>
            <returns>A combined Page number with an updated page number</returns>
        </member>
        <member name="M:VelocityDb.OidShort.AsString(System.UInt32)">
            <summary>
            Builds a string with DatabaseNumber-PageNumber-SlotNumber
            </summary>
            <param name="id">A combined Page number and page number</param>
            <returns>PageNumber-SlotNumber</returns>
        </member>
        <member name="M:VelocityDb.OidShort.ToString">
            <summary>
            Builds a string with PageNumber-SlotNumber
            </summary>
            <returns>PageNumber-SlotNumber</returns>
        </member>
        <member name="P:VelocityDb.OidShort.Id">
            <summary>
            Gets the OidShort encoded as a UInt32
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.SortedMapValueOidShort`2">
            <summary>
            A sorted map where all values are located within a single <see cref="T:VelocityDb.Database"/>
            </summary>
            <typeparam name="Key"></typeparam>
            <typeparam name="Value"></typeparam>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapValueOidShort`2.#ctor(System.Int32)">
            <summary>
            Constructs a new map with OidShort based values
            </summary>
            <param name="capacity">Presizes internal list to a requested size</param>
        </member>
        <member name="M:VelocityDb.Collection.SortedMapValueOidShort`2.#ctor(VelocityDb.Collection.Comparer.VelocityDbComparer{`0})">
            <summary>
            Constructs a new map with a given comparator
            </summary>
            <param name="comparer"></param>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapValueOidShort`2.Comparer">
            <summary>
            Gets the Key comparator of the map
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapValueOidShort`2.Keys">
            <summary>
            Gets the internal list of NodeKeys
            </summary>
        </member>
        <member name="P:VelocityDb.Collection.SortedMapValueOidShort`2.Values">
            <summary>
            Gets the internal list of NodeValues
            </summary>
        </member>
        <member name="T:VelocityDb.Collection.NamespaceDoc">
            <summary>    
            The <c>VelocityDb.Collection</c> namespace contains classes for the VelocityDb collections optimized for persistent storage in VelocityDb databases
            </summary>      
        </member>
        <member name="T:VelocityDb.Collection.BTree.NamespaceDoc">
            <summary>    
            The <c>VelocityDb.Collection.BTree</c> namespace contains classes for the VelocityDb BTrees optimized for persistent storage in VelocityDb databases
            </summary>      
        </member>
    </members>
</doc>
